Googleのcompatlibを使用して、2.2以降で実行されているデバイスのアプリ(Target SDK 16、Min SDK 8)でフラグメントを有効にしています。機能的な観点からは、これはすべて正常に実行されますが、を介して設定されたビューアニメーションのパフォーマンスは
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>
私のGalaxyS2(4.0.3)では、ひどいものです。つまり、約350ミリ秒続くアニメーションの場合は約 フレームの半分がドロップされます。フェードアウトを無効にすると、パフォーマンスが少し(ただしそれほどではない)向上することに気付きましたが、元のフラグメントがすぐに黒くなるため、もちろんアニメーションの完全な効果は失われます。コードのリリースバージョンも試しましたが、パフォーマンスも向上しませんでした。
私は何が間違っているのですか?フラグメントアニメーションをよりスムーズにするにはどうすればよいですか?