私には簡単なタスクがあります。何かが起こったとき(たとえば、ボタンが押されたとき)に画面をフェードします(+その他のアクションですが、今は関係ありません)。私の minSDKVersion は 11 です。私はこの方法でそれを行います: アクティビティ レイアウトにはビューが含まれます:
<View
android:id="@+id/bgFadingView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0"
android:background="@android:color/black" />
画面をフェードする方法は次のとおりです。
protected void fadeBGView(boolean fadeIn)
{
ObjectAnimator animator = ObjectAnimator.ofFloat(bgFadingView, "alpha", fadeIn ? 0.75f : 0f); //bgFadingView is initialized via findViewById(R.id.bgFadingView);
animator.setDuration(1000);
animator.start();
}
つまり、画面全体を占める黒いビューがあり、フェードインする必要がある場合は、ビューのアルファを 0 から 0.75 に変更します。
問題は、悪いフレームレートで動作することです... フレームごとにフェード アニメーションが表示されます - 約 15 fps で動作します。私は何を間違っていますか?Android システムのフェードがはるかにスムーズに動作します。同じ結果をアーカイブするか、クローズしたいと考えています。方法?