ActivityOptions.makeCustomAnimation 在模拟器上崩溃
ActivityOptions.makeCustomAnimation crashes on emulator
在某些情况下,我正在使用 ActivityOptions.makeCustomAnimation 来管理从一个 Activity 到另一个的过渡。
当我尝试使用模拟器(API 16 或 23)时,它不起作用,整个模拟器都死机了。如果我将 options
设置为 null
,该应用程序可以运行。
知道为什么吗?在 Android Studio 上,我在使用 android:interpolator="@android:interpolator/linear_out_slow_in"
时收到警告,因为它在 21 岁以下的 API 上不受支持。但我希望如果不支持该字段将被忽略,而且它不支持在 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" />
五个月后回复年轻的自己:
正如所怀疑的那样,问题出在插值器上。我删除了它并在 anim-v21
文件夹中添加了问题中描述的 fade_in
fade_out
实现。
在某些情况下,我正在使用 ActivityOptions.makeCustomAnimation 来管理从一个 Activity 到另一个的过渡。
当我尝试使用模拟器(API 16 或 23)时,它不起作用,整个模拟器都死机了。如果我将 options
设置为 null
,该应用程序可以运行。
知道为什么吗?在 Android Studio 上,我在使用 android:interpolator="@android:interpolator/linear_out_slow_in"
时收到警告,因为它在 21 岁以下的 API 上不受支持。但我希望如果不支持该字段将被忽略,而且它不支持在 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" />
五个月后回复年轻的自己:
正如所怀疑的那样,问题出在插值器上。我删除了它并在 anim-v21
文件夹中添加了问题中描述的 fade_in
fade_out
实现。