ViewPager过渡动画position的理解
来源:互联网 发布:身份证查电话号码软件 编辑:程序博客网 时间:2024/06/10 14:09
/** * Created by apple on 2017/4/18. */ public class DepthPageTransformer implements ViewPager.PageTransformer { private static final float MIN_SCALE = 0.75f; public void transformPage(View view, float position) {/** 关键是对position的理解:下面的数据来自于三个View的切换 1.如果当前的这个视图,静止不动在这里, 那么当前的视图position是0 , 他的上一个视图position是-1 他的下一个视图position是1 2.此时我们把当前的视图,手指向右滑动,显示出上一个视图 那么当前的视图position是0 ----> 1 他的上一个视图position是-1 ----> 0 他的下一个视图position是1 ----> 2 2.此时我们把当前的视图,手指左滑动,显示出下一个视图 那么当前的视图position是0 ----> -1 他的上一个视图position是-1 ----> -2 他的下一个视图position是1 ----> 0 我们着重考虑-1--0--1或者1--0----1这两种区间的变换, 超出-1(-1----2)和1(1---2)的变换,视觉上是看不见的,一般也是把他们做复位处理*/// 打印log Log.e("www", view.getTag()+"transformPage: "+position); int pageWidth = view.getWidth(); if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left.// 这个视图已经跑到了屏幕的最左侧,可能是2、3、4、直到无穷大 view.setAlpha(0); } else if (position <= 0) { // [-1,0] // Use the default slide transition when moving to the left page// 此时的情景是:当前视图的左侧视图 在往右侧滑动(-1--->0)// 或者 : 此时的情景是:当前视图 在往左侧滑动(0--->-1) view.setAlpha(1+position); view.setTranslationX(0); view.setScaleX(1); view.setScaleY(1); } else if (position <= 1) { // (0,1] // Fade the page out.// 此时的情景是:当前视图的右侧视图 在往左侧滑动(1--->0)// 或者 : 此时的情景是:当前视图 在往右侧滑动(0--->1) view.setAlpha(1 - position);//这句话表明:当前视图的透明度由1变为0;当前视图的右侧视图透明度由0变为1 // 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.// 这个视图已经跑到了屏幕的最右侧,可能是-2、-3、-4、直到负无穷大 view.setAlpha(0); } }}
要想打印Log,弄清楚position的意思,要在MyPagerAdapter累里给每一个添加的View设置一个Tag,然后在里面得到这个View的Tag,这样才能看清楚是哪一个view的position
public Object instantiateItem(ViewGroup container, int position) { View view = viewList.get(position); container.addView(view); view.setTag("我的位置"+position+":"); return view; }
0 0
- ViewPager过渡动画position的理解
- ViewPager的过渡动画
- Android自定义ViewPager的过渡动画
- Android两行代码搞定ViewPager的过渡动画
- 两行代码搞定ViewPager的过渡动画
- Activity过渡的动画
- Activity的过渡动画
- 过渡动画的使用
- viewpager带圆点的过渡页
- viewpager带圆点的过渡页
- iphone里的动画过渡
- CSS3的过渡、动画、转换
- iOS 过渡动画的实现
- 细说vue的过渡动画
- CSS3的过渡和动画
- android的viewpager 指示文字过渡效果
- 过渡动画
- 过渡动画
- iOS关键字
- 开发中的异常和错误总结
- 设计模式之观察者设计模式
- GObject
- float:left导致不能居中问题
- ViewPager过渡动画position的理解
- c_位运算及习题
- Longest Substring Without Repeating Characters
- Maven 开 发 规 范
- ADB命令乱码
- ExtJs大比拼JQuery:Dom文档操作
- [dfs序+主席树] BZOJ2809: [Apio2012]dispatching
- 【项目管理和构建】——Maven简介(一)
- 4.19