核心操作:
1、创建一个类实现 android.support.v4.view.ViewPager.PageTransformer 根据 position 实现判断哪个界面进行界面切换动画

public class RotatePagerPageTransFormer implements android.support.v4.view.ViewPager.PageTransformer{
private static final float MAXRADIUS = 25f;
// 当 viewpager 界面切换的时候调用的方法
//page : 切换的界面
//position : 切换的界面的状态(切换的界面包含两个界面) , 当前的界面 position 是 0 ,预加载的界面的 position 是 1 ,从右往左切换界面的时候
// 当前界面的 position 会从 0 开始往 -1 变化,预加载界面的 position 是从 1 开始往 0 变化
@Override
public void transformPage(View page, float position) {
// 实现 viewpager 的切换动画效果
//System.out.println("viewpager 的界面切换动画状态: "+position);
// 界面的宽度
int width = page.getWidth();
// 因为我们的 viewpager 的动画效果是,当前界面和预加载界面进行动画,其他界面没有动画,那如何知道应该是当前界面和预加载界面执行动画呢?可以通过 position 进行判断
// 当前界面的 position[0,-1] 预加载界面的 position[1,0]
// 实现界面的旋转动画效果
// 参数:旋转的角度
//page.setRotation(rotation);
// 判断哪个界面需要执行动画,并执行动画
if (position < -1) {
// 不执行动画
page.setRotation(0);
}else if(position > 1){
// 不执行动画
page.setRotation(0);
}else if(position < 0){
// 符合 [0,-1] ,当前界面执行动画
page.setRotation(position * MAXRADIUS);
// 设置旋转的中心点坐标
page.setPivotX(width/2);// 设置旋转中心点的 x 的坐标
page.setPivotY(page.getHeight());
}else if(position < 1){
// 符合 [0,-1] ,当前界面执行动画
page.setRotation(position * MAXRADIUS);
// 设置旋转的中心点坐标
page.setPivotX(width/2);// 设置旋转中心点的 x 的坐标
page.setPivotY(page.getHeight());
}
}
}

2、在viewpager所在类中调用界面切换动画

mViewPager.setPageTransformer(true, new RotatePagerPageTransFormer());

自定义viewpager的界面切换动画的更多相关文章

  1. 【转】android 自定义ViewPager,修改原动画

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38026503 记 得第一次见到ViewPager这个控件,瞬间爱不释手,做东西的 ...

  2. Xcode界面切换动画效果

    CATransition *animation = [CATransition animation]; [animation setDuration:0.2f]; [animation setTimi ...

  3. 利用Theme自定义Activity间的切换动画

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/22990643 大多Android系统默认Activity间的动画切换效果为,右边 ...

  4. 界面切换动画(CATransition实现 )

    调用 // CATransition动画实现 [self pushWithAnimationType:@"fade"]; - (void)pushWithAnimationType ...

  5. Activity界面切换动画特效。

    效果图: 结构图: 测试代码: 布局: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearL ...

  6. 更改navigationController push和pop界面切换动画

    For Push: MainView *nextView=[[MainView alloc] init]; [UIView beginAnimations:nil context:NULL]; [UI ...

  7. [android] 手机卫士界面切换动画

    在/res/anim/ 建立文件tran_out.xml 添加<translate>节点 设置x轴来源坐标android:fromXDelta=”0” 设置x轴目的坐标android:to ...

  8. 将 GNOME 默认的界面切换动画功能关闭

    gsettings set org.gnome.desktop.interface enable-animations false

  9. Android 实现个性的ViewPager切换动画 实战PageTransformer(兼容Android3.0以下)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40411921,本文出自:[张鸿洋的博客] 1.概述 之前写过一篇博文:Andro ...

随机推荐

  1. 【Servlet3.0新特性】第03节_文件上传

    这是一个Web Project 首先是web.xml <?xml version="1.0" encoding="UTF-8"?> <web- ...

  2. nginx健康检查模块源码分析

    nginx健康检查模块 本文所说的nginx健康检查模块是指nginx_upstream_check_module模块.nginx_upstream_check_module模块是Taobao定制的用 ...

  3. 配置Ubuntu Server高速apt-get源

    方法: 1.修改源地址:cp /etc/apt/sources.list /etc/apt/sources.list.backvim /etc/apt/sources.list 加入如下内容(中科大的 ...

  4. 结构-行为-样式-JqueryUI拖放使用实例(全)

    最近工作中有个需要是动态配置页面,想到之前公司有做过类似的,用的是JqueryUi,所以就看了下它的Api.下面就是我做的小Demo,想用的同学可以参考: Html: <div class=&q ...

  5. SpringAOP导致@Autowired依赖注入失败

    之前用springAOP做了个操作日志记录,这次在往其他类上使用的时候,service一直注入失败,找了网上好多内容,发现大家都有类似的情况出现,但是又和自己的情况不太符合.后来总结自己的情况发现:方 ...

  6. git(安装)配置

    安装: git安装程序下载:https://git-scm.com/. 配置: $ git config --global user.name "Your Name" $ git ...

  7. JavaScript(暂时弃坑...)

    简单数据类型:字符串型.布尔型.数值型 变量名可以包含数字.字母.下划线.$,但不能以数字开头,大小写敏感,不能是JavaScript关键字.避开保留字 //JavaScript保留字 break e ...

  8. 如何使用jconsole(英文)

    http://docs.oracle.com/javase/6/docs/technotes/guides/management/jconsole.html

  9. Scala减少代码重复

    高阶函数可以把其它函数当作函数参数,帮助我们减少代码重复,例如: object FileMatcher { private def fileHere = (new File(".\\file ...

  10. 【 VS 插件开发 】一、正确安装VS专业版

    [ VS 插件开发 ]一.正确安装VS专业版