我正在使用 Google 的兼容库在我的应用程序(Target SDK 16,Min SDK 8)中为在 2.2+ 上运行的设备启用片段。从功能的角度来看,这一切都很好,但是通过设置的视图动画的性能
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(inTransition, outTransition, popInTransition, popOutTransition);
哪里inTransition
有一个简单的翻译,比如
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator">
<translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="@integer/animation_duration" />
</set>
并且outTransition
是一个淡入淡出的动画
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@integer/animation_duration" />
</set>
在我的 Galaxy S2 (4.0.3) 上简直太糟糕了,即对于持续约 350 毫秒的动画,我会说大约。一半的帧被丢弃。我注意到,如果我禁用淡出,性能会稍微好一些(但不是很多),但是当然动画的完整效果就消失了,因为原始片段立即变黑。我也尝试了代码的发布版本,但性能也没有提高。
我究竟做错了什么?如何使片段动画更流畅?