我试图为片段转换设置动画,我成功地为转换设置了动画,但我也需要同时淡出或使用alpha。 这是我的代码:
private void loadFragment(Fragment frag, String tag) {
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
fragmentTransaction.setCustomAnimations(R.animator.enter_from_left,
R.animator.exit_from_right, R.animator.enter_from_right,
R.animator.exit_from_left);
fragmentTransaction.replace(R.id.frameLayout, frag, tag);
fragmentTransaction.addToBackStack(tag);
fragmentTransaction.commit();
}
这是动画师:
这是左起词:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="450"
android:propertyName="x"
android:valueFrom="1000"
android:valueTo="0"
android:valueType="floatType"/>
</set>
这是右边的输入
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="450"
android:propertyName="x"
android:valueFrom="1000"
android:valueTo="0"
android:valueType="floatType"/>
</set>
这是从左边的出口:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="450"
android:propertyName="x"
android:valueFrom="0"
android:valueTo="1000"
android:valueType="floatType"/>
</set>
这是从右边退出:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<objectAnimator
xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="450"
android:propertyName="x"
android:valueFrom="0"
android:valueTo="-1000"
android:valueType="floatType"/>
</set>
答案 0 :(得分:0)
您可以在xml中定义的标记内指定多个动画对象,也可以指定它们的排序天气一起或按顺序播放。
以下是如何更改xml以实现您想要的目标
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
android:ordering="together">
<objectAnimator
android:duration="450"
android:propertyName="x"
android:valueFrom="1000"
android:valueTo="0"
android:valueType="floatType"/>
<objectAnimator
android:duration="450"
android:valueFrom="0f"
android:propertyName="alpha"
android:valueTo="1f" />