android对象动画过渡和alpahn

时间:2017-07-24 18:31:46

标签: android animation

我试图为片段转换设置动画,我成功地为转换设置了动画,但我也需要同时淡出或使用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>

1 个答案:

答案 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" />