自定义viewpager的界面切换动画
核心操作:
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的界面切换动画的更多相关文章
- 【转】android 自定义ViewPager,修改原动画
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38026503 记 得第一次见到ViewPager这个控件,瞬间爱不释手,做东西的 ...
- Xcode界面切换动画效果
CATransition *animation = [CATransition animation]; [animation setDuration:0.2f]; [animation setTimi ...
- 利用Theme自定义Activity间的切换动画
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/22990643 大多Android系统默认Activity间的动画切换效果为,右边 ...
- 界面切换动画(CATransition实现 )
调用 // CATransition动画实现 [self pushWithAnimationType:@"fade"]; - (void)pushWithAnimationType ...
- Activity界面切换动画特效。
效果图: 结构图: 测试代码: 布局: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearL ...
- 更改navigationController push和pop界面切换动画
For Push: MainView *nextView=[[MainView alloc] init]; [UIView beginAnimations:nil context:NULL]; [UI ...
- [android] 手机卫士界面切换动画
在/res/anim/ 建立文件tran_out.xml 添加<translate>节点 设置x轴来源坐标android:fromXDelta=”0” 设置x轴目的坐标android:to ...
- 将 GNOME 默认的界面切换动画功能关闭
gsettings set org.gnome.desktop.interface enable-animations false
- Android 实现个性的ViewPager切换动画 实战PageTransformer(兼容Android3.0以下)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40411921,本文出自:[张鸿洋的博客] 1.概述 之前写过一篇博文:Andro ...
随机推荐
- bdev文件系统
文件系统,是对磁盘数据进行组织和管理的一种机制. 可通过装载,以目录和文件的形式向用户层呈现.但,文件和目录其实只是文件系统的前端而已,只是文件系统的用户视图,其本质还在于这样的一个数据结构:inod ...
- 配置Ubuntu Server高速apt-get源
方法: 1.修改源地址:cp /etc/apt/sources.list /etc/apt/sources.list.backvim /etc/apt/sources.list 加入如下内容(中科大的 ...
- 关于javascript变量作用域的研究。
开始 一个变量的作用域(scope)是程序源代码中定义这个变量的区域.全局变量具有全局作用域,在javascript中的任何地方都是有定义的.然而在函数内申明的变量只在函数体内有定义.他们是局部变量, ...
- 部署 instance 到 OVS vlan100 - 每天5分钟玩转 OpenStack(138)
上一节创建了 OVS vlan network vlan100,今天部署 instance 到该网络.launch 新的 instance “cirros-vm1”,网络选择 vlan100. cir ...
- linux一句话问答(网络无关篇+网络相关篇+程序开发篇+经典图书)
一句话问答(网络无关篇+网络相关篇+程序开发篇+经典图书) --------------------------目录-网络无关篇-目录-------------------------- 0001 修 ...
- 【C#】Send data between applications
This sample shows how to send data between different applications, including object data——transform ...
- C++ unordered_map 在key为string类型和char*类型时测试时间性能差异
测试系统liunx centos6.5 代码如下 #include <string.h> #include <sstream> #include <list> #i ...
- 明天opp¥this xuexi 资料在高中一班
明天opp¥this xuexi 资料在高中一班
- Python反射函数
python里面跟getattr相关的有hasattr,setattr,delattr ,那么我们通过下面的例子,来详细的说说他们的用法. class Xiaorui: def __init__(s ...
- jquery ColorPicker 颜色选择器
$(function() { $('#colorpickerField').ColorPicker({ onSubmit: function(hsb, hex, rgb, el) { $(el).va ...