Android中为所有的Activity设置打开和关闭动画
分类:Android, Java
阅读 (2,012)
Add comments
11月 102015
注意:在有的系统上不能用,不!知!道!为!什!么!
首先在res下建立anim目录,然后在anim目录里添加相应的动画资源,本文章添加了两个动画资源,如下:
zoomin.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator"> <scale android:fromXScale="0.1" android:toXScale="1.0" android:fromYScale="0.1" android:toYScale="1.0" android:pivotX="50%p" android:pivotY="50%p" android:duration="300" /> <!-- 这里为了看到动画演示效果,把动画持续时间设为3秒 --> <alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="300" /> </set> |
zoomout.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/decelerate_interpolator" android:zAdjustment="top"> <scale android:fromXScale="1.0" android:toXScale=".5" android:fromYScale="1.0" android:toYScale=".5" android:pivotX="50%p" android:pivotY="50%p" android:duration="300" /> <!-- 系统内置的动画持续时间 android:duration="@android:integer/config_mediumAnimTime" --> <alpha android:fromAlpha="1.0" android:toAlpha="0" android:duration="300"/> </set> |
然后在style.xml中建立一个样式,如下:
1 2 3 4 5 6 |
<style name="Animation_Activity" parent="@android:style/Animation.Translucent"> <item name="android:activityOpenEnterAnimation">@anim/zoomin</item> <item name="android:activityOpenExitAnimation">@anim/zoomout</item> <item name="android:activityCloseEnterAnimation">@anim/zoomin</item> <item name="android:activityCloseExitAnimation">@anim/zoomout</item> </style> |
注意一定要继承自@android:style/Animation.Translucent
然后在Activity的主题样式里引用这个样式
1 2 3 |
<style name="AppActivityTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:windowAnimationStyle">@style/Animation_Activity</item> </style> |
最后在AndroidManifest.xml把想使用这个动画的Activity设置成这个主题就好了,如下:
1 2 3 4 5 6 7 8 9 10 |
<activity android:name=".box.AddBoxActivity" android:exported="false" android:screenOrientation="portrait" android:theme="@style/AppActivityTheme" /> <activity android:name=".good.GoodAddActivity" android:exported="false" android:screenOrientation="portrait" android:theme="@style/AppActivityTheme" /> |