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

ডেপথ পেজ ট্রানসফরমার

এই পেজ ট্রান্সফর্মার বাম পার্শে স্লাই্ডিং পেজের জন্য ডিফল্ট স্লাইড অ্যানিমেশন ব্যবহার করে, যখন ডান পার্শে স্লাইডিং পেজের জন্য একটি “ডেপথ” অ্যানিমেশন ব্যবহার করা হয়। এই ডেপথ অ্যানিমেশন পেজ আউটকে ফেড করে, এবং সুসঙ্গতভাবে আনুপাতিক হারে কমায়।

DepthPageTransformer উদাহরণ

নোট: ডেপথ অ্যানিমেশনের সময়, ডিফল্ট অ্যানিমেশন (একটি স্ক্রিন স্লাইড) তখনও জায়গা নেয়, সুতরাং আপনাকে অবশ্যই একটি নেগেটিভ X অনুবাদ দিয়ে স্ক্রিন স্লাাইড নিবারণ করতে হভে। উদাহরণ:

 view.setTranslationX(
1 * view.getWidth() * position);

নিম্নোক্ত উদাহরণ দেখায় একটি কার্যরত পেজ ট্রান্সফর্মারে কীভাবে ডিফল্ট স্ক্রিন স্লাইড অ্যানিমেশন নিবারণ করা হয়:

public class DepthPageTransformer implements ViewPager.PageTransformer {
    private static float MIN_SCALE = 0.75f;

    public void transformPage(View view, float position) {
        int pageWidth = view.getWidth();

        if (position < -1) { // [-Infinity,-1)
            // This page is way off-screen to the left.
            view.setAlpha(0);

        } else if (position <= 0) { // [-1,0]
            // Use the default slide transition when moving to the left page
            view.setAlpha(1);
            view.setTranslationX(0);
            view.setScaleX(1);
            view.setScaleY(1);

        } else if (position <= 1) { // (0,1]
            // Fade the page out.
            view.setAlpha(1 - position);

            // Counteract the default slide transition
            view.setTranslationX(pageWidth * -position);

            // Scale the page down (between MIN_SCALE and 1)
            float scaleFactor = MIN_SCALE
                    + (1 - MIN_SCALE) * (1 - Math.abs(position));
            view.setScaleX(scaleFactor);
            view.setScaleY(scaleFactor);

        } else { // (1,+Infinity]
            // This page is way off-screen to the right.
            view.setAlpha(0);
        }
    }
}