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页面切换特效的更多相关文章

  1. 58种jQuery模拟CSS3过渡页面切换特效

    演示网址 http://www.htmleaf.com/Demo/201503251573.html 点击下载

  2. ViewPager之Fragment页面切换

    一.概述 ViewPager是android-support-v4中提供的类,它是一个容器类,常用于页面之间的切换. 继上篇文章<ViewPager之引导页>之后,本文主要介绍ViewPa ...

  3. Android中使用ViewPager实现屏幕页面切换和页面切换效果

    之前关于如何实现屏幕页面切换,写过一篇博文<Android中使用ViewFlipper实现屏幕切换>,相比ViewFlipper,ViewPager更适用复杂的视图切换,而且Viewpag ...

  4. Android开发之ViewPager实现多页面切换及动画效果(仿Android的Launcher效果)

    Android开发中经常会有引导页或者切换页面等效果,本文采用ViewPager结合动画效果来实现仿Launcher以及页面切换的效果.源码地址在文章最后给出下载. 效果图如下:       1.Vi ...

  5. Android——Fragment实例精讲——底部导航栏+ViewPager滑动切换页面

    说明: 实现效果: 1- 用ViewPager实现Fragmen之间的切换 2- 底部用RadioGroup实现,更方便的实现图片和字体颜色的改变,更方便的通过RadioButton的点击事件来控制页 ...

  6. Android实战简易教程-第二十六枪(基于ViewPager实现微信页面切换效果)

    1.头部布局文件top.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...

  7. Android成长日记-使用PagerAdapter实现页面切换

    Tip:此方式可以实现页面切换 1. 创建view1.xml,view2.xml,view3.xml,main.xml 在main.xml中创建 <android.support.v4.view ...

  8. (原)android中的动画(三)之动画监听&页面切换动画

    1.动画也可以设置监听事件,例如在动画结束时需要执行某操作 把要执行的代码写在onAnimationEnd()回调方法中即可: anim.setAnimationListener(new Animat ...

  9. Android为ViewPager增加切换动画——使用属性动画.

    ViewPager作为Android最常用的的组件之一,相信大家在项目中会频繁的使用到的,例如利用ViewPager制作引导页.轮播图,甚至做整个app的表现层的框架等等. Android3.0以下不 ...

随机推荐

  1. docker实战——在测试中使用Docker

    在之前几章中介绍的都是Docker的基础知识,了解什么是镜像,docker基本的启动流程,以及如何去运作一个容器等等. 接下来的几个章节将介绍如何在实际开发和测试过程中使用docker. 将Docke ...

  2. formidable 模块化开发 代码拆分(解耦) nodejs图片服务器架构

    引言:程序要做到:健壮性.低耦合.可扩展.方便程序员分工合作 上传图片值nodejs服务器并显示图片的源代码: post.html : <!DOCTYPE html> <html l ...

  3. JSON字符串化

    1.JSON字符串化 JSON字符串化有2个可选参数,分别是replacer和space. 第一个可选参数replacer,它可以是数组或者函数.用来指定哪些属性被处理,哪些属性被排除. 第二个可选参 ...

  4. CSAPP:异常控制流

    在一般的情况下,处理器处理的指令序列是相邻的(顺序执行). 异常控制流提供了指令的跳转,它一部分是由硬件实现的,一部分是由操作系统实现的. 异常处理 在系统启动时,操作系统分配和初始化一张称为异常表的 ...

  5. struts提交action乱码

    没下雪但冷的让人直打哆嗦的天气,冷醉了的教训!!   问题解决步骤: 1.首先确认页面编码是否准确,并且是否与struts编码配置一样,就算是gbk对GBK,最好大小写保持一样 2.尝试先转码一次吧! ...

  6. 锁定窗口,禁止更新的win32函数

    [DllImport("user32.dll", EntryPoint = "LockWindowUpdate", SetLastError = true, E ...

  7. NIO之Charset类字符编码对象

    Charset类字符编码对象 介绍 java中使用Charset来表示编码对象 This class defines methods for creating decoders and encoder ...

  8. flink-connector-kafka consumer checkpoint源码分析

    转发请注明原创地址:http://www.cnblogs.com/dongxiao-yang/p/7700600.html <flink-connector-kafka consumer的top ...

  9. nginx日志配置指令详解

    这篇文章主要介绍了nginx日志配置指令详解,nginx有一个非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志,需要的朋友可以参考下日志对于统计排错来说非常有利的.本文总结了nginx日 ...

  10. PIL之基础应用

    >>> from PIL import Image >>> #读取图像文件 ... >>> gal=Image.open('/Users/simi ...