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以下不 ...
随机推荐
- 2017.11.21 postgre更新时需要联合其他表的信息
现在需要更新t_user表,但是前台传来的参数 tenant_name 并不在这个表中,需要联合另一个表t_tenant. 要注意的一点是:set后面的字段不要写成 u.fd_validity,否则会 ...
- 各大网站css初始化代码【转】
文章来源:http://blog.sina.com.cn/s/blog_71ed1b870101a52w.html 腾讯QQ官网(http://www.qq.com)样式初始化 body,ol,ul, ...
- 【Swift】学习笔记(三)——字符和字符串
基本了解了变量的创建和基础数据类型,但是在开发中用得最多的还是字符串.那什么是字符串呢? Swift 的String类型表示特定序列的Character(字符) 类型值的集合,它是值类型具有可变性 S ...
- iOS编程 手动忽略clang编译器警告
在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak.循环引用.不能运行之类的警告. 有代码洁癖的孩子们非常想消除他们, 今天就让我们来一次Fuck 警告.! 首先学会主要的语句 #pra ...
- Visual Studio C++ MFC界面常用参数更改(改变图标,添加控件,调试打印函数等等)
背景 需要使用Visual Studio C++做一些界面.此篇文章既是记录Visual Studio C++在调整界面时常常遇见的问题. 正文 一.如何更改窗体图标,以及生成的.exe图标 更改窗体 ...
- unsupported major.minor version 解决方法
转载自http://hi.baidu.com/fatchong/blog/item/191da23b478bbfef15cecbae.html 一直以来都是用jdk1.5,这次 ...
- udpsocket 通信C#例子
服务端代码: using System; using System.Collections.Generic; using System.Linq; using System.Net; using Sy ...
- Android源代码解析之(四)-->HandlerThread
转载请标明出处:一片枫叶的专栏 上一篇文章中我们解说了AsyncTast的基本使用以及实现原理,我们知道AsyncTask内部是通过线程池和Handler实现的.通过对线程池和handler的封装实现 ...
- VS项目名称修改
阅读数:11141 VS中新建一个项目,如果开发工作都接近尾声,客户来要求更换项目的名称,差不多要变更整个解决方案中项目名称,引用等等,这个工作量还是很大的.上网搜索解决方法,还实验了专门的修改项目名 ...
- 使用pycharm手动搭建python语言django开发环境(一)
1)系统已经安装了python,django,pycharm 2)安装python的virtualenv模块.该模块通过创建一个虚拟化的python运行环境,将我们所需的依赖安装进去的,不同项目之间相 ...