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>