ViewPager花式切换效果
来源:互联网 发布:死而有知 编辑:程序博客网 时间:2024/04/30 07:38
一、关于ViewPager
Viewpager作为一个经常使用的控件,相信大家都使用过。今天我们要给这个控件加上各样的切换效果。
二、效果一
无图无真相,先上图
这是viewpager的一个3D动画效果,其实实现它没有多么复杂,只需要运用v4包中PageTransformer类即可实现,这个类提供了一个方法transformpage,这个方法给我们了俩参数,一个是viewpager当前页面的视图,一个是该视图运动的百分比,通过这俩参数我们可以可以自定义容器中的view移动,比如说上图效果。
@Overridepublic void transformPage(View view, float position) {if(position<1&&position>-1){//效果1view.setScaleX(1-Math.abs(position));view.setScaleY(1-Math.abs(position));}}对的就是这么简单,再来一个效果
三、效果二
这个效果是移动时缩放了一定的大小,代码如下:
view.setScaleX(Math.max(0.9f,1-Math.abs(position)));view.setScaleY(Math.max(0.9f,1-Math.abs(position)));
四、来个更炫的效果,3D翻转
这个效果看着很炫丽,其实看到这种效果我们第一时间想的应该是变复杂为简单,将复杂的动画拆分,上述动画可以拆分为俩动画:
1、页面缩小动画
2、页面转动动画
好了上代码:
view.setPivotX(position<0f?view.getWidth():0f);//左边页面:0~-1;右边的页面:1~0view.setPivotY(view.getHeight()*0.5f);view.setRotationY(position*45f);//0~90度
五、组件抖动效果
每个小组件都附加了一个位移动画,给每个子控件加一个随机的位移效果,代码如下:
@Overridepublic void transformPage(View view, float position) {if(position<1&&position>-1) {//找到里面的子控件ViewGroup v = (ViewGroup) view.findViewById(R.id.rl);int childCount = v.getChildCount();for (int i = 0; i < childCount; i++) {View childView = v.getChildAt(i);float factor = (float) Math.random() * 3;if (childView.getTag() == null) {childView.setTag(factor);} else {factor = (float) childView.getTag();}/**每一个子控件达到不同的视差效果,translationX是不一样的 * position : 0 ~ -1 * translationX: 0 ~ childView.getWidth(); */childView.setTranslationX(factor * childView.getWidth() * position);}}}
六、3D内翻转效果
不解释了,直接上代码相信大家懂得,跟上面3D翻转效果原理类似:
view.setPivotX(position<0f?view.getWidth():0f);//左边页面:0~-1;右边的页面:1~0view.setPivotY(view.getHeight()*0.5f);view.setRotationY(-position*45f);//0~90度view.setPivotX(view.getWidth()*0.5f);//左边页面:0~-1;右边的页面:1~0view.setPivotY(view.getHeight()*0.5f);view.setRotationY(-position*45f);//0~90度
七、源码
根据相同的原理我们可以实现更多的效果,这几个效果代码已上传到github下边是链接:
源码
阅读全文
0 0
- ViewPager花式切换效果
- ViewPager页面切换效果
- 优化ViewPager切换效果
- ViewPager 实行切换效果
- viewpager立方体切换效果
- ViewPager自定义切换效果
- viewpager切换效果
- ViewPager不要切换效果
- ViewPager的切换效果
- ViewPager 自动切换广告效果
- ViewPager切换动画效果修改
- ViewPager官方的切换效果
- ViewPager 的切换动画效果
- viewpager切换添加动画效果
- ViewPager的动画切换效果
- 图片自动切换效果ViewPager
- android ViewPager切换带切换效果
- 表格花式效果
- bzoj1370 团伙 【并查集】
- python两个数组差的绝对值
- oracle 基本使用
- Efficient Graph-Based Image Segmentation
- html加css实现简易导航栏
- ViewPager花式切换效果
- CSS3中和动画有关的属性transform、transition 和 animation
- PCF8563 时钟芯片驱动代码
- <Effective Modern C++>Item 15: Use constexpr whenever possible.[constexpr 表达式]
- 算法分析与设计丨第一周丨 LeetCode(1)——Two Sum
- 文件拷贝
- 1018:尼科彻斯定理
- Google Fuchsia操作系统
- list.remove()时出问题,集合的remove方法注意事项