前言:大家好,我是Clover,从事Android应用开发以来一直自学,身边能请教的牛人很少,遇到问题就泡在CSDN各种学习大神们的经验,真的非常感谢CSDN这个平台。到目前Clover也是积累了一点项目经验,决定写点自己的文,整理一些平时常用的方法、技术点或是典型的小组件,算是对自己平日学习的总结和记录吧,都是基础的东西大神请忽略,有不正确或者可以改进的地方欢迎大家帮忙指点,谢谢☺️
在android应用开发过程中经常需要用到Activity的跳转,添加一些跳转的动画效果能提高应用的用户体验,下面以ActivityA中启动ActivityB为例,介绍两个自己常用的方法:
1.使用overridePendingTransition
用在startActivity后,overridePendingTransition(ActivityB进入动画,ActivityA退出动画),注意:此方法需要判断SDK版本,代码如下:
1
2
3
4
5
6
7
8
9
10<span style="font-size:14px;">//从ActivityA跳转到ActivityB startActivity(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 />节点,声明一个主题,代码如下:
1
2
3<style name="ActivitySwitch.Theme" parent="@style/Theme.Sherlock.Light"> <item name="android:windowAnimationStyle">@style/activity_anim</item> </style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<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
1
2
3
4
5
6
7
8
9
10
11<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
1
2
3
4
5
6
7
8
9
10
11<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
1
2
3
4
5
6
7
8
9
10
11<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
1
2
3
4
5
6
7
8
9
10
11<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从左侧渐入屏幕,这样的效果,非常基础,动画可以随意换成其他的形式。
最后
以上就是玩命白猫最近收集整理的关于Android 自定义Activity切换动画效果的常用方法的全部内容,更多相关Android内容请搜索靠谱客的其他文章。
发表评论 取消回复