ViewPager页面切换特效
ViewPager页面切换特效如下效果
看效果:
效果1:
效果2:
下面就开始讲解如何实现这两个页面翻转效果
1.首先你得会ViewPager控件的使用(废话!现在还有人不会使用吗???!!)
2.你得了解ViewPager的一个回调函数ViewPager.PageTransformer(用于设置ViewPager切换时的动画效果),我们页面切换特效基本就靠他了。
3.你得了解属性动画(这一部分我会在以后的博文中讲到,读者也可以去读其他的文章,百度一下一大推)
当上面的都掌握了,你基本写出任何页面转换特效出来了!我只是拿两个做案列
代码实现
一.页面布局+初始化ViewPager(这边我直接上代码了,不细说了!太简单了)
简单布局:
初始化ViewPager:
ViewPager的适配器代码:
至此,我们的准备工作都已经OK! 下面就是真正的干货了!!!
二.了解ViewPager.PageTransformer(用于设置ViewPager切换时的动画效果)这个这个回调函数
1.首先我们看一下这个函数ViewPager.PageTransformer:

这个函数有两个参数一个是View 还有一个是position。我先解释下这个position,首先呢他的有效取值范围在[-1,1]
我们就是根据这个值的变化来不停的改变view的相应的属性,以此达到相应的页面转换效果!下面 我就以一张图的形式来解释下view和position之间的关系 大家看一下图解就明白了!

说白了就是我在[0,-1)的时候操作A页面 在[1,0)操作B页面 此时页面对应这个函数中的view变量 当[0.-1)时view是A页面 当[1,0)时view是B页面
2.下面就是开始分析第一个效果,我们可以到的是 A页面沿着X轴缩小 B页面沿X轴放大
看代码:

接着我们再来分析第二个效果,我们看出是沿着Y旋转180度
看代码

该段代码中我们设置View的旋转中心是:
page.setPivotY(page.getMeasuredHeight() / 2);
page.setPivotX(page.getMeasuredWidth() / 2);
A页面Y轴旋转:[0,-180)
B页面Y轴旋转:[180,0)
至此,已经讲解完成了!!
总结
读者只要了解了ViewPager.PageTransformer这个回调函数基本上页面切换特效已经掌握了!关于这个函数要了解的就是view和position之间的关系。了解两者之间的关系 该函数你就已经了解!其次就是属性动画的功底(不在本篇文章之内)!
我还在强调一次就是:position可以用变化范围[-1,1] 他与View的对应的关系是:将设ViewPager中的一二两业分别对应A页,B页。那么AB两页对应的position变化就是:A[ 0, -1) B[ 1 , 0 ).读者了解这个关系之后一切问题就迎刃而解了!!!
ViewPager页面切换特效的更多相关文章
- 58种jQuery模拟CSS3过渡页面切换特效
演示网址 http://www.htmleaf.com/Demo/201503251573.html 点击下载
- ViewPager之Fragment页面切换
一.概述 ViewPager是android-support-v4中提供的类,它是一个容器类,常用于页面之间的切换. 继上篇文章<ViewPager之引导页>之后,本文主要介绍ViewPa ...
- Android中使用ViewPager实现屏幕页面切换和页面切换效果
之前关于如何实现屏幕页面切换,写过一篇博文<Android中使用ViewFlipper实现屏幕切换>,相比ViewFlipper,ViewPager更适用复杂的视图切换,而且Viewpag ...
- Android开发之ViewPager实现多页面切换及动画效果(仿Android的Launcher效果)
Android开发中经常会有引导页或者切换页面等效果,本文采用ViewPager结合动画效果来实现仿Launcher以及页面切换的效果.源码地址在文章最后给出下载. 效果图如下: 1.Vi ...
- Android——Fragment实例精讲——底部导航栏+ViewPager滑动切换页面
说明: 实现效果: 1- 用ViewPager实现Fragmen之间的切换 2- 底部用RadioGroup实现,更方便的实现图片和字体颜色的改变,更方便的通过RadioButton的点击事件来控制页 ...
- Android实战简易教程-第二十六枪(基于ViewPager实现微信页面切换效果)
1.头部布局文件top.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...
- Android成长日记-使用PagerAdapter实现页面切换
Tip:此方式可以实现页面切换 1. 创建view1.xml,view2.xml,view3.xml,main.xml 在main.xml中创建 <android.support.v4.view ...
- (原)android中的动画(三)之动画监听&页面切换动画
1.动画也可以设置监听事件,例如在动画结束时需要执行某操作 把要执行的代码写在onAnimationEnd()回调方法中即可: anim.setAnimationListener(new Animat ...
- Android为ViewPager增加切换动画——使用属性动画.
ViewPager作为Android最常用的的组件之一,相信大家在项目中会频繁的使用到的,例如利用ViewPager制作引导页.轮播图,甚至做整个app的表现层的框架等等. Android3.0以下不 ...
随机推荐
- represent states with objects
1. The behavior of objects in the real world is more complex than simply being in one state at a tim ...
- 从C转到JAVA学习路之struct与class对比(转)
转自:http://blog.csdn.net/andywxf01/article/details/53506549 JAVA里最牛B的最基本的就是类,而C语言中的struct也可以定义自己的数据结构 ...
- Node.js meitulu图片批量下载爬虫1.02版
以前版本需要先查看网页源码,然后肉眼找到图片数量和子目录,虽说不费事,但多少有点不方便. 于是修改了一下,用cheerio自己去找找到图片数量和子目录,只要修改页面地址就行了.至此社会又前进了一步. ...
- 说说Linux文件权限那些事儿
文件全部权 显示文件的全部权 更改文件的全部权 文件的权限 改动文件的权限 用符号表示法改动 用数字表示法改动 使用umask指定默认的文件权限 參考文献 首先我们要知道Linux的标准文件权限和安全 ...
- [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket错误解决方法总结
今天做一个特殊的业务处理,用JDBC连接SQLServer数据库载入驱动的时候,报例如以下错误: java.sql.SQLException: [Microsoft][SQLServer 2000 D ...
- $HTTP_RAW_POST_DATA 与$_POST
出处:http://blog.163.com/gwo-cce@126/blog/static/325736492008101142422345/ 这是手册里写的 总是产生变量包含有原始的 POST 数 ...
- Spring 测试框架testContext代码举例
import javax.annotation.Resource; import org.junit.Test; import org.springframework.context.annotati ...
- python学习笔记之pdb调试
之前一直说要学python可还是一直停留在看的层面,昨天大神手把书教我pdb调试,说要摆脱IDE集成开发环境编程,感激不尽,立一个flag,python一定要入门! 1.进入方式 1)windows ...
- mongodb or and 条件拼凑 Query.And Query.Or
查询 1月 7月 8月 的数据 list - [0] { "$or" : [{ "JobDate" : { "$gte" : ISODate ...
- IOS推送通知測试工具PushMeBaby
下载了PushMeBaby在xcode5里中不能使用.类库变了.须要加入Carbon.framework库.在引用的地方改成: #include <Carbon/Carbon.h>.程序就 ...