Android 自定义Activity切换动画效果的常用方法
来源:互联网 发布:const javascript 编辑:程序博客网 时间:2024/05/01 02:14
前言:大家好,我是Clover,从事Android应用开发以来一直自学,身边能请教的牛人很少,遇到问题就泡在CSDN各种学习大神们的经验,真的非常感谢CSDN这个平台。到目前Clover也是积累了一点项目经验,决定写点自己的文,整理一些平时常用的方法、技术点或是典型的小组件,算是对自己平日学习的总结和记录吧,都是基础的东西大神请忽略,有不正确或者可以改进的地方欢迎大家帮忙指点,谢谢☺️
在android应用开发过程中经常需要用到Activity的跳转,添加一些跳转的动画效果能提高应用的用户体验,下面以ActivityA中启动ActivityB为例,介绍两个自己常用的方法:
1.使用overridePendingTransition
用在startActivity后,overridePendingTransition(ActivityB进入动画,ActivityA退出动画),注意:此方法需要判断SDK版本,代码如下:
<span style="font-size:14px;">//从ActivityA跳转到ActivityBstartActivity(new Intent(ActivityA.this, ActivityB.class));//获取当前Android SDK版本号int version = android.os.Build.VERSION.SDK_INT; if(version > 5 ){ //设置跳转动画 overridePendingTransition(R.anim.in_from_right_to_center, R.anim.out_from_center_to_left);} </span>
2.使用Style定义动画
在Manifest文件中声明Activity时,可以通过android:theme属性设置Activity的主题,主题中可以定义Activity的切换动画。此方法没有版本限制。
首先,在res/values/style.xml的文件中插入一个<style />节点,声明一个主题,代码如下:
<style name="ActivitySwitch.Theme" parent="@style/Theme.Sherlock.Light"> <item name="android:windowAnimationStyle">@style/activity_anim</item> </style>这里定义的主题命名为ActivitySwitch.Theme,父级主题即为应用的主题,我这里用的是外部项目主题,也可以使用android自带主题如:@android:style/Theme.NoTitleBar,<item/>节点中定义一个"android:windowAnimationStyle"属性,指向另一个自定义主题activity_anim,该主题中定义切换的动画,在style.xml中继续添加:
<span style="font-size:14px;"><style name="activity_anim" parent="@android:style/Animation.Activity"> <!-- ActivityB Enter Animation --> <item name="android:activityOpenEnterAnimation">@anim/in_from_right_to_center</item> <!-- ActivityA Exit Animation --> <item name="android:activityOpenExitAnimation">@anim/out_from_center_to_left</item> <!-- ActivityA Enter Animation --> <item name="android:activityCloseEnterAnimation">@anim/in_from_left_to_center</item> <!-- ActivityB Exit Animation --> <item name="android:activityCloseExitAnimation">@anim/out_from_center_to_right</item></style> </span>
下面是动画文件代码
in_from_right_to_center.xml
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0%p" android:duration="300"/> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" /> </set> </span>
out_from_center_to_left.xml
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0%p" android:toXDelta="-100%p" android:duration="300"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" /> </set> </span>
in_from_left_to_center.xml
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="-100%p" android:toXDelta="0%p" android:duration="300"/> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" /></set></span>
out_from_center_to_right.xml
<span style="font-size:14px;"><?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0%p" android:toXDelta="100%p" android:duration="300"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" /></set> </span>
这样就实现了从ActivityA跳转到ActivityB,B从右侧渐入屏幕,A从左侧淡出屏幕的效果,同样,从B返回A时,B从右侧淡出屏幕,A从左侧渐入屏幕,这样的效果,非常基础,动画可以随意换成其他的形式。
0 0
- Android 自定义Activity切换动画效果的常用方法
- android学习笔记---56_activity切换动画与页面切换动画,自定义activity窗口切换动画效果的实现.
- Android Activity切换动画效果的修改
- android Activity切换动画效果
- android Activity切换动画效果
- Android Activity 切换动画效果
- 【Android】Activity切换动画效果
- Activity的动画切换效果
- Activity切换的动画效果
- Android 两个activity之间“平推”的动画切换效果
- android中设置activity切换时候的动画效果
- Android 设置Activity切换时候的动画效果
- android Activity切换时动画效果实现
- android使用activity切换动画效果
- Android提高 - Activity切换动画效果xml
- Android 滑动切换Activity动画效果
- Android基础篇之自定义Activity间的切换动画
- Android基础之自定义Activity间的切换动画
- Redis总结笔记(二):C#连接Redis简单例子
- processing PImage 绕自身旋转代码
- 编程思想之多线程与多进程(3)——Java中的多线程
- 1014. Waiting in Line (30)
- java与json互相转换(解决日期问题)
- Android 自定义Activity切换动画效果的常用方法
- 湖南广电台长吕焕斌:湖南电视台的新媒体发展战略
- pdf.js – 利用HTML5技术读取PDF文件
- css3中div的水平,垂直居中
- sql的分组排序
- 弹性运动——学习笔记
- android 开源项目集锦 (转载)
- 分享 C++命名空间的解释 http://blog.chinaunix.net/uid-26874138-id-3215266.html
- HMM模型