我正在尝试为 fragment 过渡设置动画,我成功地为过渡设置了动画,但同时我还需要使用 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>
最佳答案
您可以在 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" />
关于android object animator transition 和 alpahn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45287667/