文章目录
首先看一个动图
上图展示的是Activity的跳转动画,第二个Activity
从右向左进入,假如我想让它从左向右进入,或者其他的效果进入,该如何做到呢?这就要讲到Android为我们提供的方法overridePendingTransition
。
1 overPendingTransition(int enterAnim, int exitAnim)介绍
此方法可以直接在startActivity()
或者finish()
之后调用,它有两个参数enterAnim
和exitAnim
,
enterAnim
:定义Activity进入屏幕时的动画
exitAnim
:定义Activity退出屏幕时的动画
使用方式如下:
Intent shopKeeperIntent = new Intent(this, ShopKeeperActivity.class);
startActivity(shopKeeperIntent);
// slide_right_in表示从右入,slide_left_out表示从左出
overridePendingTransition(R.anim.slide_right_in, R.anim.slide_left_out);
2 淡入淡出效果
我们可以使用Android提供的淡入淡出效果overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
,也可以参考原生的写法,自定义一个淡入淡出动画,不妨将淡入命名为fade_in
,淡出命名为fade_out
,文件可以定义在res/anim/
下。
fade_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--
透明度控制动画效果 alpha
浮点型值:
fromAlpha 属性为动画起始时透明度
toAlpha 属性为动画结束时透明度
说明:
0.0表示完全透明
1.0表示完全不透明
以上值取0.0-1.0之间的float数据类型的数字
长整型值:
duration 属性为动画持续时间
说明:
时间以毫秒为单位
-->
<alpha
android:duration="1500"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
fade_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha
android:duration