【发布时间】:2013-02-16 06:49:25
【问题描述】:
此问题仅在 Jelly Bean 4.1 和 4.2 上有时会发生(在 Galaxy Nexus 和 Nexus 4 上测试)。
这是我如何使用overridePendingTransition
什么时候开始一个新的Activity:
Intent intent = new Intent(ActivityA.this, ActivityB.class);
startActivity(intent);
overridePendingTransition(R.anim.transition_right_to_left,
R.anim.transition_right_to_left_out);
当完成一个活动回到上一个
finish();
overridePendingTransition(R.anim.transition_left_to_right, R.anim.transition_left_to_right_out);
transition_left_to_right
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXDelta="-100%p"
android:toXDelta="0"
android:duration="@integer/transition_duration"/>
transition_left_to_right_out
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXDelta="0"
android:toXDelta="100%p"
android:duration="@integer/transition_duration"/>
transition_right_to_left
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="100%p"
android:toXDelta="0"
android:duration="@integer/transition_duration"/>
transition_right_to_left_out
<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0"
android:toXDelta="-100%p"
android:duration="@integer/transition_duration"/>
这就是屏幕闪烁的方式:http://youtu.be/TUKRz2yVF6Q(仅从 01:00 开始)
如果您知道我的代码有什么问题以及为什么设备屏幕有时会闪烁,请告诉我?谢谢。
编辑:尝试在 Jelly Bean 上使用 ActivityOptions 但没有帮助
【问题讨论】:
-
问题出现在一个特定的 ANDROID 设备还是每个支持果冻豆的 Android 设备上?
-
我不知道,因为除了 Galaxy Nexus 和 Nexus 4 之外,我没有很多设备要测试。
-
但是你可以在不同操作系统版本的不同模拟器上试用
-
尝试增加动画持续时间并检查是否可以重现闪光
-
目前transition_duration = 400 ms,改成800后(非常非常慢)问题依旧。
标签: android animation transition