ViewPager有個方法叫做:
setPageTransformer(boolean reverseDrawingOrder, PageTransformer transformer)
用于設置ViewPager切換時的動畫效果。
這里我們只要自定義一個PageTransformer來實現我們需要的動畫偏移效果就好了!
public class ScrollOffsetTransformer implements PageTransformer { private static final float MIN_SCALE = 0.85F; /** * position參數指明給定頁面相對于屏幕中心的位置。它是一個動態屬性,會隨著頁面的滾動而改變。 * 當一個頁面(page)填充整個屏幕時,positoin值為0; 當一個頁面(page)剛剛離開屏幕右(左)側時,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畫廊的實現方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
新聞熱點
疑難解答