Android 自定义ViewPager的滑动切换页面效果
来源:互联网 发布:浙江大学会计专硕 知乎 编辑:程序博客网 时间:2024/06/05 16:37
先借用网上图片效果
自定义效果最重要的一个方法就是
viewPager.setPageTransformer(boolean,PageTransformer)这个方法就是设置viewpager的滑动效果的方法,里面需要传递两个参数:第一个参数传true就行了 第二个参数就是重点了我们需要创建一个效果类,继承PageTransformer这个类然后来实现我们的自定义效果class DepthPageTransformer implements ViewPager.PageTransformer { @Override public void transformPage(View view, float position) { int pageWidth = view.getWidth(); int pageHeight = view.getHeight(); if (position < -1) { } else if (position <= 0) { view.setPivotX(pageWidth / 2); view.setPivotY(pageHeight); view.setRotation(15 * position); } else if (position <= 1) { view.setPivotX(pageWidth / 2); view.setPivotY(pageHeight); view.setRotation(15 * position); } else { } }// //去除默认横向滑动// view.setTranslationX(pageWidth * -position); }继承类里面就一个方法 解释一下,transformPage这个方法里面传来了两个值,一个是view,一个是position
这个view就是我们需要进行操作(旋转,放大,缩小等效果)的view,直接就可以用view.setRotation(),setTranslation()等
这些方法进行操作
而这个Position就重要了,Position就是两个页面滑动之间的系数,表示滑动了多少,viewpager加载三个页面,
当前显示的和左右两个页面
左边的页id为-1 当前显示的页id为0 右边的页id为1
如果Position从-1慢慢变大变成了0就说明id=-1的页面在向id=0的页面移动,就是向右滑动,反之也是一样向左滑动
这样我们就能很好理解Position的变化值的意思了
所以我们只要判断 -1<position<=0 的时候就说明id=-1的页面在左右滑动
当 0>position<=1 的时候就说明id=0的页面在左右滑动
所以我们通常看到 Position一会是负数,一会又是正数,因为每次滑动都是相邻两个页面一起动的
以上都是我自己的理解,记录下来。我觉得这样解释起来会更容易理解,有什么错误麻烦指出
0 0
- Android 自定义ViewPager的滑动切换页面效果
- Android ViewPager特效之水滴效果的滑动切换页面
- [Android实例] ViewPager多页面滑动切换以及动画效果
- [Android实例] ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- [Android实例] ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果!!!
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Jetty 的工作原理以及与 Tomcat 的比较
- Button 按钮的点击时候出现蓝色边框
- 统计从1-n的整数中1出现的次数(10进制)
- TensorFlow安装手册
- JDK安装,环境变量配置
- Android 自定义ViewPager的滑动切换页面效果
- 观察者模式
- 简单javascript弹出层,非jQuery
- C++之单继承与多继承
- 浅谈this指针
- [kuangbin带你飞]专题一 简单搜索 -A
- Android gradle 配置strings.xml资源
- java:lock中condition消息传递(基本用法)
- Jenkins+git+webhook自动触发部署和测试任务