Android(安卓)Activity动画属性简介
Android Activity动画属性简介
在Android当中 设置activity的动画 需要复写android:windowAnimationStyle这个属性
我们自定义一个动画样式来继承 @android:style/Animation(Base style for animations. This style specifies no animations)
这个样式是Android操作系统提供的 没用动画的样式 我们定义其中的4个属性还设置我们想要的效果
android:activityOpenEnterAnimation 一个activity创建进入的效果。
android:activityOpenExitAnimation 一个activity还没有finish()下退出效果, 比如有俩个activity A与B 首先启动A 然后再启动B 那么A还没有finish() 这时A的退出效果。
android:activityCloseEnterAnimation 表示上一个activity返回进入效果 比如有俩个activity A与B B在最上面,B退出(finish)后 A重新进入的效果。
android:activityCloseExitAnimation 表示的是activity finish()之后的效果 比如有俩个activity A与B B退出后会被finish() 那么B的退出效果在这定义。
下面写一个activity左右滑动的效果。
<style name="AppTheme" parent="@android:style/Theme"> <item name="android:windowAnimationStyle">@style/activityAnimation</item> </style>
<style name="activityAnimation" parent="@android:style/Animation"> <item name="android:activityOpenEnterAnimation">@anim/slide_right_in</item> <item name="android:activityOpenExitAnimation">@anim/slide_left_out</item> <item name="android:activityCloseEnterAnimation">@anim/slide_left_in</item> <item name="android:activityCloseExitAnimation">@anim/slide_right_out</item> </style>
slide_left_in.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="300" android:fromXDelta="-100.0%p" android:toXDelta="0.0" /></set>
slide_left_out.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="300" android:fromXDelta="0.0" android:toXDelta="-100.0%p" /></set>
slide_right_in.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="300" android:fromXDelta="100.0%p" android:toXDelta="0.0" /></set>
slide_right_out.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="300" android:fromXDelta="0.0" android:toXDelta="100.0%p" /></set>
上面是通写配置文件的方式来定义activity的动画效果,我们还可以通过代码的方式来指定动画效果。
overridePendingTransition(int enterAnim, int exitAnim)
all immediately after one of the flavors ofstartActivity(Intent)
orfinish()
to specify an explicit transition animation to perform next.
这个方法可以放在startActivity(intent)和finish()方法的后面。
(A启动B A不动 B从下面滑入)
第一个参数是进入activity的动画,第二个参数是当前activity退出时的动画。
Intent intent = new Intent(NavigationDemo.this, AnimationActivity.class); startActivity(intent); overridePendingTransition(R.anim.slide_in_from_bottom, R.anim.hold);
slide_in_from_bottom.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@android:integer/config_longAnimTime" android:fromYDelta="100%p" android:toYDelta="0" />
hold.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@android:integer/config_longAnimTime" android:fromXDelta="0" android:interpolator="@android:anim/accelerate_interpolator" android:toXDelta="0" />
(A与B B退出时从下面滑出)
第一个参数指定A进入时的效果,为0表示没有动画, 第二个参数表示当前B退出时的动画。
@Override public void finish() { super.finish(); overridePendingTransition(0, R.anim.slide_out_to_bottom); } }
slide_out_to_bottom.xml
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="@android:integer/config_longAnimTime" android:fromYDelta="0" android:toYDelta="100%p" />
更多相关文章
- Android(安卓)View MarqueeView 跑马灯效果
- [android]实现拖动效果
- android textview 实现跑马灯效果
- TextView 的阴影效果 及小圆点 跑马灯
- 实现Android简单动画旋转案例
- Android(安卓)Scrollview
- android中的帧动画
- Android设置透明效果
- Android(安卓)ViewFlipper/ViewSwitcher/ViewPager/VerticalView