AndroidActivity进出动画三种⽅法
Android Activity进出动画三种⽅法
实现activity的进出场动画总共有3种⽅式,下⾯会⼀⼀列出,⾸先给出⽰例的动画xml⽂件。
动画的xml⽂件
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="schemas.android/apk/res/android"
android:fromYDelta="100%"
android:toYDelta="0"
android:duration="1000"
/>
这是R.anim.in
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="schemas.android/apk/res/android"
android:fromYDelta="0"
android:toYDelta="100%"
android:duration="1000"
/>
这是R.anim.out
实现activity进出场动画的第1种⽅式:overridePendingTransition
⽤法:
toNext(AnimationDrawableActivity.class);
overridePendingTransition(R.anim.in, R.anim.out);
PS:toNext是⼀个封装的⽅法,跳转到指定的activity。
如果要finish掉当前activity,把它放在overridePendingTransition()⽅法前后似乎并⽆差别,不过有⼈建议finish()放在overridePendingTransition()之前,不知出处。
实现activity进出场动画的第2种⽅式:在清单⽂件中为activity设置theme
在l⽂件中写⼀个style,如下:
<style name="animationofactivity" parent="AppBaseTheme">
<item name="android:windowAnimationStyle">@style/enterandentrance</item>
</style>
其中,主要是为android:windowAnimationStyle设置值,enterandentrance也是⼀个style,如下:
<style name="enterandentrance">
<item name="android:activityOpenEnterAnimation">@anim/in</item>
<item name="android:activityOpenExitAnimation">@anim/out</item>
<item name="android:activityCloseEnterAnimation">@anim/in</item>
<item name="android:activityCloseExitAnimation">@anim/out</item>
</style>
从名为A的activity跳转到B,B也可以跳转到C,其中转场动画设置在B上。
android:activityOpenEnterAnimation:指的是,进⼊B时的动画。
android:activityOpenExitAnimation:指的是进⼊B时,A的动画,与B的动画是⼀起显⽰的。
android:activityCloseEnterAnimation:通过B跳转到C后,后退到B时,B的进⼊动画
android:activityCloseExitAnimation:通过B跳转到C后,后退到B时,C的退出动画
最终,为activity设置⼀个theme,如下:
<activity android:name="ample.androidresources.AnimationDrawableActivity"
android:theme="@style/animationofactivity"/>
实现activity进出场动画的第3种⽅式:在activity中⽤代码设置
在所要设置动画的activity的onCreate⽅法中,设置了setContentView()之后,写如下代码:
这种⽅法除了⽤在activity的转场动画之外,还能⽤在dialog中。
LayoutParams params = getWindow().getAttributes();
params.windowAnimations = andentrance;
getWindow().setAttributes(params);
⼀些动画⼩常识:
1、调⽤overridePendingTransition(enterAnim, exitAnim)时,enterAnim和exitAnim如果有为0的值,指的是不设置该动画。
2、如果进⼊⼀个activity时,想让前⼀个activity静⽌不动,那么需要专门写⼀个动画,如下:
android retrofit<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="schemas.android/apk/res/android"
android:fromYDelta="0"
android:toXDelta="0"
android:duration="1000"/>
感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论