1、fragment的翻页动画需要手动创建一个文件夹,在Res目录下创建anim或者animator文件夹,之所以不一样是要看你使用的fragment的导包是哪一种fragment,如果是导入的是v4包的fragment的话,那么就要创建anim文件夹,xml跟activity的动画xml是一样的,如果是导入的app的包创建的就是animator文件夹。然后xml的写法是:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:interpolator="@android:interpolator/decelerate_quint"
android:valueFrom="100dp" android:valueTo="0dp"
android:valueType="floatType"
android:propertyName="translationX"
android:duration="@android:integer/config_mediumAnimTime" />
<objectAnimator
android:interpolator="@android:interpolator/decelerate_quint"
android:valueFrom="0.0" android:valueTo="1.0"
android:valueType="floatType"
android:propertyName="alpha"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
用法都是:
FragmentTransaction transaction = getFragmentManager(). beginTransaction();//这个实例是app的包 /** * 如果是两个参数是分别指两个fragment一进一出,进入了下一个fragment然后返回的时候不会有效果的 * 第一个参数代表是将要进栈的fragmentB,第二个参数是当前fragmentA,第三个参数是当前的fragmentA下一次 * 进场效果,第四个是将要进栈的那个fragmentB的出栈效果 */ transaction.setCustomAnimations( R.animator.slide_in_left, R.animator.slide_in_right, R.animator.slide_in_left, R.animator.slide_in_right ); transaction .replace(R.id.replace_framelayout, new SecondFragment()) .addToBackStack(null) .commit();
无论是不是导入的v4包的fragment只是文件夹不一样,其他操作都一样,一样的动画xml,一样的使用方法。2、activity的进出场动画只能在res文件夹下新建anim文件夹来存放xml动画资源,而且动画的写法也不一样。
activity的动画资源xml————----》
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="2000"/> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="2000" /></set>
activity的用法:
Intent intent = new Intent(TestActivities.this,TestActivityFirst.class); startActivity(intent);overridePendingTransition(R.anim.slide_in_bottom,R.anim.slide_out_bottom);(1)
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!--这个是从屏幕的右边到屏幕的中间--> <translate android:duration="700" android:fromXDelta="100%p" android:toXDelta="0" /> <alpha android:duration="700" android:fromAlpha="0.5" android:toAlpha="1.0" /> </set>
(2)<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!--这个是从屏幕的中间到屏幕的左边--> <translate android:duration="700" android:fromXDelta="0" android:toXDelta="-100%p" /> <alpha android:duration="700" android:fromAlpha="1.0" android:toAlpha="0.8" /> </set>
(3)<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!--这个是从屏幕的左边到屏幕的中间--> <translate android:duration="700" android:fromXDelta="-100%p" android:toXDelta="0" /> <alpha android:duration="700" android:fromAlpha="0.8" android:toAlpha="1.0" /> </set>
(4)<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!--这个是从屏幕的中间到屏幕的右边--> <translate android:duration="700" android:fromXDelta="0" android:toXDelta="100%p" /> <alpha android:duration="700" android:fromAlpha="1.0" android:toAlpha="0.8" /> </set>
(5)<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!--这个是从屏幕的中间慢慢出现--> <alpha android:duration="700" android:fromAlpha="0.4" android:toAlpha="1.0" /> </set>
(6)<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!--这个是从屏幕的中间慢慢消失--> <alpha android:duration="700" android:fromAlpha="1.0" android:toAlpha="0" /> </set>
(7)<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!--手机屏幕顶部的左上方坐标是0,0,比如30 ->0 就是离顶部的30%到离顶部0%--> <translate android:duration="1000" android:fromYDelta="30%p" android:toYDelta="0" /> <alpha android:duration="1000" android:fromAlpha="0.0" android:toAlpha="1.0" /> </set>
(8)<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <!--往下,注意收集屏幕左上角是(0,0),横向是X轴,竖着是Y轴--> <translate android:fromYDelta="0%p" android:toYDelta="100%p" android:duration="1000"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="1000" /> </set>