বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

ভিউ ক্রসফেড

এখন ভিউগুলো সম্পূর্ণভাবে সেটআপ করা হয়েছে, নীচের কাজগুলো করে তাদের ক্রসফেড করুন:

  1. যে ভিউ দৃশ্যমান হতে যাচ্ছে (fading in) তার জন্য, ০ এ আলফা ভ্যাল্যু এবং দৃশ্যমানতা VISIBLE এ সেট করুন। (মনে রাখবেন যে, এটা প্রাথমিকভাবে GONE এ সেট করা হয়েছিল ) এটা ভিউকে দৃশ্যমান করবে কিন্তু সম্পূর্ণভাবে স্বচ্ছ থাকবে।

  2. যে ভিউ দৃশ্যমান হতে যাচ্ছে তার জন্য, ০ থেকে ১ এ এর আলফা ভ্যাল্যু অ্যানিমেট করুন। একই সময়ে যে ভিউ বিবর্ন হয়ে গেছে (fading out) তার জন্য আলফা ভ্যালু ১ থেকে ০ তে সেট করুন।

  3. একটি Animator.AnimatorListener এর মধ্যে onAnimationEnd()ব্যবহার করে, ভিউয়ের দৃশ্যমানতাকে সেট করুন যা GONE এ অদৃশ্য হয়েছিল। এমনকি যদিও আলফা ভ্যাল্যু হচ্ছে ০, GONE এ ভিউয়ের দৃশ্যমানতাকে সেট করাটা ল্আেউট স্পেস নেয়া থেকে বিরত রাখবে এবং এটা লেআউট ক্যালকুলেশন থেকে বাদ দিয়ে দিবে, প্রসেসকে আরও দ্রুততর করবে।

নীচের পদ্ধতিটি এটা কীভাবে করতে হয় তার একটি উদাহরণ দেখায়: private View mContentView; private View mLoadingView; private int mShortAnimationDuration;

...

private void crossfade() {

    // Set the content view to 0% opacity but visible, so that it is visible
    // (but fully transparent) during the animation.
    mContentView.setAlpha(0f);
    mContentView.setVisibility(View.VISIBLE);

    // Animate the content view to 100% opacity, and clear any animation
    // listener set on the view.
    mContentView.animate()
            .alpha(1f)
            .setDuration(mShortAnimationDuration)
            .setListener(null);

    // Animate the loading view to 0% opacity. After the animation ends,
    // set its visibility to GONE as an optimization step (it won't
    // participate in layout passes, etc.)
    mLoadingView.animate()
            .alpha(0f)
            .setDuration(mShortAnimationDuration)
            .setListener(new AnimatorListenerAdapter() {
                @Override
                public void onAnimationEnd(Animator animation) {
                    mLoadingView.setVisibility(View.GONE);
                }
            });
}