ActivityOptions.makeCustomAnimation在模拟器上崩溃

时间:2017-10-23 13:45:14

标签: android android-intent start-activity

我在某些情况下使用ActivityOptions.makeCustomAnimation来管理从一个Activity到另一个Activity的转换。

当我尝试使用模拟器(API 16或23)时,它不起作用并且整个模拟器冻结。如果我将options设置为null该应用有效。

知道为什么吗?在Android Studio上,我收到警告,因为我使用android:interpolator="@android:interpolator/linear_out_slow_in"因为它不支持21下的API。但我希望如果不支持此字段将被忽略,而且它不会#39} ;在API 23下的模拟器上工作,所以我不认为这是问题。

以下是我调用的方法

/**
 * @param destActivity Activity we want to launch
 * @param activity Current activity
 */
private <T> void goToNextActivity(Class<T> destActivity, Activity activity) {

    Bundle options = ActivityOptions.makeCustomAnimation(activity,
            R.anim.fade_in, R.anim.fade_out).toBundle();

    Intent intent = new Intent(activity, destActivity);
    activity.startActivity(intent, options);

    activity.finish(); // Finishes the current Activity
}

fade_in.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromAlpha="0"
    android:toAlpha="1"
    android:interpolator="@android:interpolator/linear_out_slow_in" />

fade_out.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="200"
    android:fromAlpha="1"
    android:toAlpha="0"
    android:interpolator="@android:interpolator/fast_out_linear_in" />

1 个答案:

答案 0 :(得分:1)

五个月后回复我年轻的自己:

正如所怀疑的,问题是内插器。我将其删除,并将问题中描述的fade_in fade_out实施添加到anim-v21文件夹中。