安卓 自定义activity(活动)切换效果

来源:互联网 发布:win10怎么ping网络 编辑:程序博客网 时间:2024/05/21 01:28

上图表示了对于一个Activity它在不同位置所对应的坐标。

从左往右,X轴的变化为-100% --- 0% --- 100%

从右往左,X轴变化为 100% ---0% --- -100%

当然也可以通过修改Y轴的值来实现上下切换,变化的比例也可不一定是100%,根据实际效果而定。

1.从左边切入和切出

left_show.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/accelerate_decelerate_interpolator" >    <translate        android:duration="300"        android:fromXDelta="-100%"        android:fromYDelta="0%"        android:toXDelta="0%"        android:toYDelta="0%" /></set>

left_hide.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/accelerate_decelerate_interpolator" >    <translate        android:duration="300"        android:fromXDelta="0%"        android:fromYDelta="0%"        android:toXDelta="100%"        android:toYDelta="0%" /></set>

2.从右边切入和切出

right_show.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/accelerate_decelerate_interpolator" >    <translate        android:duration="300"        android:fromXDelta="100%"        android:fromYDelta="0%"        android:toXDelta="0%"        android:toYDelta="0%" /></set>

right_hide.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:interpolator="@android:anim/accelerate_decelerate_interpolator" >    <translate        android:duration="300"        android:fromXDelta="0"        android:fromYDelta="0%"        android:toXDelta="-100%"        android:toYDelta="0%" /></set>
切换至activity需使用overridePendingTransition(R.anim.right_show,R.anim.right_hide),但是需要在startActivity或者startActivityFromFragment以及finish之后使用。

切换至fragment需使用FragmentTransaction的setCustomAnimations(R.anim.right_show,R.anim.right_hide),可以结合hide,add,remove,replace使用。

0 0