Android viewpager 3D画廊的实现方法
程序员文章站
2023-12-17 23:05:52
viewpager有个方法叫做:
setpagetransformer(boolean reversedrawingorder, pagetransformer...
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画廊的实现方法,希望对大家有所帮助