使用makeCustomAnimation的自定义动画在某些设备上不起作用

时间:2017-04-25 07:04:14

标签: android android-animation

我的自定义动画有问题。下面的代码适用于API 25 android模拟器,但在物理设备API 23上没有显示动画。

活动

Intent intent = new Intent(getApplicationContext(),NewClass.class);
intent.putExtra("data", data);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
    Bundle options = ActivityOptions.makeCustomAnimation(getBaseContext(), R.anim.slide_in_from_right,R.anim.slide_out_to_left).toBundle();
    startActivityForResult(intent,101,options);
}

slide_in_from_right

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:fromXDelta="100%" android:toXDelta="0%"
        android:fromYDelta="0%" android:toYDelta="0%"
        android:duration="700" />
</set>

slide_out_to_left

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:fromXDelta="0%" android:toXDelta="-100%"
        android:fromYDelta="0%" android:toYDelta="0%"
        android:duration="700"/>
</set>

1 个答案:

答案 0 :(得分:1)

试试这个

在res \ anim \ slide_out_to_left.xml

中创建一个文件
    <?xml version="1.0" encoding="utf-8"?>
     <set xmlns:android="http://schemas.android.com/apk/res/android">
     <translate xmlns:android="http://schemas.android.com/apk/res/android"
         android:duration="500"
         android:fromXDelta="0"
         android:toXDelta="-100%p" 
     />
   </set>

在res \ anim \ slide_in_from_right

中创建一个文件
 <?xml version="1.0" encoding="utf-8"?>
 <set xmlns:android="http://schemas.android.com/apk/res/android">
 <translate
   android:duration="500"
   android:fromXDelta="0"
   android:toXDelta="100%p" />

</set>
  

这项工作在所有版本