English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يوجد طريقة في ViewPager تدعى:
setPageTransformer(boolean reverseDrawingOrder, PageTransformer transformer)
لإعداد تأثير الحركة عند التبديل بين الصفحات في ViewPager.
إليك، نحتاج فقط إلى تعريف PageTransformer لتحقيق تأثير انزلاق الحركة المطلوب!
public class ScrollOffsetTransformer implements PageTransformer { private static final float MIN_SCALE = 0.85F; /** * يشير معامل position إلى موقع الصفحة المقابلة لمركز الشاشة. إنه خاصية ديناميكية، يغير قيمته مع انزلاق الصفحة. * عند تعبئة صفحة واحدة بالكامل على الشاشة، يكون قيمة position 0؛ عند مرور صفحة واحدة للتو عبر الجانب الأيمن (اليسار) من الشاشة، يكون قيمة position 1 (-1). * عند وصول صفحتين إلى نصف الطريق، فإن إحداهما تكون -0.5، والأخرى 0.5. * بناءً على موقع الصفحة على الشاشة، من خلال مثل setAlpha()، setTranslationX * () أو setScaleY() لتحديد خصائص الصفحة، إنشاء حركة انزلاق مخصصة. */ @Override public void transformPage(View view, float position) { // TODO Auto-generated method stub float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position)); float rotate = 30 * Math.abs(position); float transla = 50 * Math.abs(position); if (position > 0) { view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); view.setRotationY(-rotate); view.setTranslationX(-transla); } else { view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); view.setRotationY(rotate); view.setTranslationX(transla); } } }
ثم
viewPager
إضافة
viewPager.setPageTransformer(true, new ScrollOffsetTransformer())
ما ذكرته أعلاه هو طريقة تحقيق Android viewpager 3D gallery التي قدمها المحرر للجميع، آمل أن تكون مفيدة للجميع. إذا كان لديك أي أسئلة، فيرجى ترك تعليق، وسأقوم بالرد على أسئلتكم في الوقت المناسب. شكرًا جزيلاً أيضًا للجميع على دعم موقع呐喊 لتعليم البرمجة!
بيان: محتوى هذا المقال تم جمعه من الإنترنت، ويتمتع المالك الأصلي بحقوق النشر، ويتم توفير المحتوى من قبل مستخدمي الإنترنت الذين يقدمونه بأنفسهم ويتم تحميلهم، ولا يمتلك هذا الموقع حقوق الملكية، ولا يتم تعديل المحتوى بشكل يدوي، ولا يتحمل هذا الموقع أي مسؤولية قانونية. إذا كنت قد وجدت محتوى يشتبه في انتهاك حقوق النسخ، فيرجى إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # بـ @) لإبلاغنا، وقدم الأدلة ذات الصلة، وسيتم حذف المحتوى المزعوم عن انتهاك حقوق النسخ فور التحقق منه.