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

পেজ ট্রান্সফরমার দিয়ে অ্যানিমেশন কাস্টমাইজ করা

ডিফল্ট স্ক্রিন স্লাইড অ্যানিমেশন থেকে একটি ভিন্ন অ্যানিমেশন প্রদর্শন করতে, ViewPager.PageTransformer ইন্টারফেস বাস্তবায়ন করুন এবং ভিউ পেজারে সাপ্লাই করুন। ইন্টারফেস একটি একক পদ্ধতি transformPage() উন্মোচন করে। স্ক্রিনের পরিবর্তনের প্রতিটা পয়েন্টে, এই পদ্ধতি প্রতিটা দৃশ্যমান পেজের জন্য একবারই কল হয় (সাধারণভাবে এখানে একটিই দৃশ্যমান পেজ থাকে) পার্শ্ববতী পেজের জন্য শুধু স্িক্রনটি বন্ধ করে দিন। উদাহরণস্বরূপ, যদি তিন নম্বর পেজ দৃশ্যমান হয় এবং ইউজার চার নম্বর পেজের যায়, ২,৩ এবং চার নাম্বার পেজের জন্য অঙ্গভঙ্গির/ইংগিত প্রতিটা ধাপে transformPage()কল করা হয়।

আপনার transformPage()বাস্তবায়নে, স্ক্রিনে পেজের পজিশনের উপর ভিত্তি করে কোন পেজ পরিবর্তন হওয়া প্রয়োজন তা নির্ধারণ করার জন্য আপনি তারপরে কাস্টম স্লাইড এনিমেশন করতে পারেন, যা transformPage()পদ্ধতির position প্যারামিটার থেকে ধারন করা হয়।

Position প্যারামিটার নির্দেশ করে কোথায় একটি প্রদত্ত পেজ আছে যা স্ক্রিনের কেন্দ্রের সম্পর্কিত। এটা একটা ডাইনামিক প্রপারটি যা ইউজারের স্ক্রিন জুরে স্কল করার মতো করে পরিবর্তন করে। যখন একটি পেজ স্ক্রিন পূর্ন করে, এটার অবস্থান (পজিশন) ভ্যালু ০। যখন পেজ শুধু স্ক্রিনের ডান পাশ বন্ধ করে অংকন করা হয়, এটার অবস্থান ভ্যালু ১। যদি ইউজার এবং ২ পেজের মধ্যে অর্ধেক পথ স্ক্রল করে, প্রথম পেজের অবস্থান -০.৫ এবং দুই নম্বর পেজের ০.৫ অবস্থান থাকে। স্ক্রিনে পেজের পজিশনের ভিত্তি করে, setAlpha(), setTranslationX(), বা setScaleY()এর মতো পদ্ধতি দিয়ে পেজ প্রাপারটি সেট করার মাধ্যমে আপনি কাস্টম স্লাইড অ্যানিমেশন তৈরী করতে পারেন।

যখন আপনার PageTransformer এর একটি বাস্তবায়ন থাকে, আপনার কাস্টম অ্যানিমেশন প্রয়োগ করতে আপনার বাস্তাবায়ন দিয়ে setPageTransformer()কল করুন। উদাহরণস্বরূপ, আপনার যদি ZoomOutPageTransformer নামে একটি PageTransformer থাকে, আপনি এটার মতো করে আপনার কাস্টম অ্যানিমেশন করতে পারেন:

ViewPager pager = (ViewPager) findViewById(R.id.pager);
...
pager.setPageTransformer(true, new ZoomOutPageTransformer());

উদাহরনের জন্য Zoom-out page transformer এবং Depth page transformer সেকশন দেখুন এবং PageTransformer এর ভিডিও দেখুন।