当前位置: 首页 > 编程笔记 >

Android Activity进出动画三种方法

东方河
2023-03-14
本文向大家介绍Android Activity进出动画三种方法,包括了Android Activity进出动画三种方法的使用技巧和注意事项,需要的朋友参考一下

 Android Activity进出动画三种方法

 实现activity的进出场动画总共有3种方式,下面会一一列出,首先给出示例的动画xml文件。

动画的xml文件

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/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="http://schemas.android.com/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

在styles.xml文件中写一个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="com.example.androidresources.AnimationDrawableActivity"  
     android:theme="@style/animationofactivity"/> 

实现activity进出场动画的第3种方式:在activity中用代码设置

在所要设置动画的activity的onCreate方法中,设置了setContentView()之后,写如下代码:

这种方法除了用在activity的转场动画之外,还能用在dialog中。

LayoutParams params = getWindow().getAttributes(); 
params.windowAnimations = R.style.enterandentrance; 
getWindow().setAttributes(params); 

一些动画小常识:

1、调用overridePendingTransition(enterAnim, exitAnim)时,enterAnim和exitAnim如果有为0的值,指的是不设置该动画。

2、如果进入一个activity时,想让前一个activity静止不动,那么需要专门写一个动画,如下:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
  android:fromYDelta="0" 
  android:toXDelta="0" 
  android:duration="1000"/> 

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍Linux启动新进程的三种方法,包括了Linux启动新进程的三种方法的使用技巧和注意事项,需要的朋友参考一下 程序中,我们有时需要启动一个新的进程,来完成其他的工作。 下面介绍了三种实现方法,以及这三种方法之间的区别。 1.system函数-调用shell进程,开启新进程 system函数,是通过启动shell进程,然后执行shell命令进程。 原型: int system(cons

  • 本文向大家介绍pygame学习笔记(2):画点的三种方法和动画实例,包括了pygame学习笔记(2):画点的三种方法和动画实例的使用技巧和注意事项,需要的朋友参考一下 1、单个像素(画点) 利用pygame画点主要有三种方法: 方法一:画长宽为1个像素的正方形 方法二:画个直径为1的圆 方法三:这种方法并不是画上去的,而是改变了surface上某个点的颜色,这样看上去像是画了一个点screen.s

  • 本文向大家介绍Android 动画实现几种方案,包括了Android 动画实现几种方案的使用技巧和注意事项,需要的朋友参考一下 Android 动画实现几种方案 在 Android 的 FrameWork 中,为我们提供三种动画的实现方式:逐帧(Frame)动画、视图/补间动画(View Animation)和属性动画(Property Animation)。由于,这三种动画的实现方式和针对面不一

  • 本文向大家介绍Vue-router 切换组件页面时进入进出动画方法,包括了Vue-router 切换组件页面时进入进出动画方法的使用技巧和注意事项,需要的朋友参考一下 App.vue 代码 以上这篇Vue-router 切换组件页面时进入进出动画方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 本文向大家介绍Flutter进阶之实现动画效果(三),包括了Flutter进阶之实现动画效果(三)的使用技巧和注意事项,需要的朋友参考一下 在上一篇文章:Flutter进阶—实现动画效果(二)的最后,我们实现了一个控件,其中包含各种布局和状态处理控件。以及使用自定义的动画感知绘图代码绘制单个Bar的控件。还有一个浮动按钮控件,用于启动条形图高度的动画变化。 现在开始向我们的单个条形添加颜色,在Ba

  • 本文向大家介绍Android使用Theme自定义Activity进入退出动画的方法,包括了Android使用Theme自定义Activity进入退出动画的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android使用Theme自定义Activity进入退出动画的方法。分享给大家供大家参考,具体如下: 有没有觉得Activity的默认动画太快了或者太难看了。。 我原来使用Activi