android中Activity切换动画学习心得
来源:互联网 发布:淘宝免单网 编辑:程序博客网 时间:2024/06/15 21:17
在开发android应用中,要把界面做的很炫的话肯定少不了动画。默认情况下两个Activity之间切换时就执行了动画,如果你对系统自动的一些动画效果不太满意的话,可以而自定义。Activity切换时需要同时执行两套动画,一个是前一个Activity消失的动画,一个是后一个Activity呈现的动画。
android中实现Activity切换动画有两种方式:
第一种,在Activity中提供了方法overridePendingTransition(int,int)可以实现切换动画,该方法的两个参数分别对应前后两个动画的资源文件。调用overridePendingTransition(int,int)时必须放在startActivity()之后,finish()之前。如果你按back键或只finish(),此方法不起作用。
动画资源文件需要放在res/anim/目录下,下面是分别是test_activity_enter.xml和test_activity_exit.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="true" android:interpolator="@android:anim/linear_interpolator" android:duration="@android:integer/config_longAnimTime" > <alpha android:fromAlpha="0" android:toAlpha="1" /> <scale android:fromXScale="0" android:toXScale="1" android:fromYScale="0" android:toYScale="1" /><translate android:fromXDelta="-100%" android:toXDelta="0%" /><rotate android:fromDegrees="0" android:toDegrees="360" /></set>
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="true" android:duration="@android:integer/config_longAnimTime" android:interpolator="@android:anim/linear_interpolator" > <alpha android:fromAlpha="1.0" android:toAlpha="0" /><translate android:fromXDelta="0%" android:toXDelta="100%" /><scale android:fromXScale="1" android:toXScale="0" android:fromYScale="1" android:toYScale="0" /><rotate android:fromDegrees="0" android:toDegrees="-360" /></set>
在Activity里面切换时,调用
Intent intent = new Intent(this,OtherActivity.class);startActivity(intent);overridePendingTransition(R.anim.test_activity_enter, R.anim.test_activity_exit);
<!-- Standard animations for a full-screen window or activity. --> <style name="Animation.Activity"> <item name="activityOpenEnterAnimation">@anim/activity_open_enter</item> <item name="activityOpenExitAnimation">@anim/activity_open_exit</item> <item name="activityCloseEnterAnimation">@anim/activity_close_enter</item> <item name="activityCloseExitAnimation">@anim/activity_close_exit</item> <item name="taskOpenEnterAnimation">@anim/task_open_enter</item><span style="white-space:pre"></span>…… …… </style>最上面四个<item />对应的就是Activity切换时系统调用的动画style了,前两个对应和第一种一样的,后两种是按back键或finish Activity时执行的动画。 如果想办法替换成自己写的样式,就可以实现自定义了,先要定义四套动画,放在res/anim/目录下,这里还是沿用第一种方式的动画文件,为了简单前两种和后两种使用相同动画,然后要在res/values/目录下自定义style(theme),test_style.xml文件如下:
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="TestThemeActivity" mce_bogus="1"><item name="android:windowAnimationStyle">@style/TestAnimationActivity</item><item name="android:windowNoTitle">true</item></style> <style name="TestAnimationActivity" parent="@android:style/Animation.Activity" mce_bogus="1"><item name="android:activityOpenEnterAnimation">@anim/test_activity_enter</item><item name="android:activityOpenExitAnimation">@anim/test_activity_exit</item><item name="android:activityCloseEnterAnimation">@anim/test_activity_enter</item><item name="android:activityCloseExitAnimation">@anim/test_activity_exit</item></style></resources><item />里的name必须要跟系统自带的给出的一模一样,非则编译不能通过。最后就在AndroidManifest.xml清单文件<application>标签里应用上面的样式:
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="AnimatorTest" android:theme="@style/TestThemeActivity" >
上面设置的是theme属性,在application标签下按CTRL+/也看不到style, 关于style和theme区别,对比themes.xml,感觉好像差不多。
当第一种方式和第二种方式同时存在时,优先使用第一个。如果你想要某一个Activity有不同的动画效果,就可以使用第一种,即使第二种存在,也会优先使用第一个。
0 0
- android中Activity切换动画学习心得
- Android中Activity切换动画
- Android中Activity切换动画
- Android中Activity跳转/切换动画
- Android中Activity跳转/切换动画
- Android中Activity跳转和切换动画
- Android中自定义切换activity动画
- android中Activity间切换动画
- Android中Activity的切换动画
- Android中切换Activity的动画
- android activity 动画切换
- android activity 切换+动画
- Android动画切换Activity
- Android Activity切换动画
- Android Activity切换动画
- Android Activity 切换动画
- android activity切换动画
- android Activity切换动画
- ACM练习—谁获得了最高奖学金
- MFC对话框风格和工程字符集的关系
- 循环链表&线性表(5.15)
- C语言学习第三天—控制流
- 网页中调起本地程序系列——简介篇
- android中Activity切换动画学习心得
- 论战Yann LeCun:谁能解释极限学习机(ELM)牛X在哪里?
- CWnd常用函数讲解
- C 语言学习第四天—函数和文件组织
- 思维拓展-记孩子疫苗接种登记
- C语言学习第五天—递归
- servlet的生命周期
- gxx_slide之城市规划
- Markdown语法的简要规则学习