1

GUIを更新するために継続的に実行する必要があるタイマータスクを使用したゲームを開発しています。ここで、2 つのアニメーションを同時に実行しようとすると、スムーズに動作せず、アニメーションが途切れ途切れに見えます。

たとえば、フレーム アニメーションを実行し、実行中にリストをスクロールしようとしても、スムーズにスクロールしません。runOnUiThread でいくつかのアニメーションを実行しようとしましたが、うまくいきませんでした。

また、もう1つ気づいたことがあります。image.setVisibility(View.GONE) または image.setVisibility(View.VISIBLE) を使用すると、アニメーション フローが中断されます。

この問題の解決策または代替案を提案してください。Androidで複数のアニメーションを同時に実行すると問題が発生しますか?

4

5 に答える 5

4

ターゲット API は何ですか? ハードウェアアクセラレーションをオンにできますか?

    <application android:hardwareAccelerated="true" ...>
于 2012-10-01T16:57:32.727 に答える
1

エミュレータでしかテストしていない場合は、最初に実際のデバイスで試すことができます。エミュレーターは、実際のデバイスのようにアニメーションをレンダリングするのが得意ではないことが知られていると思います。

于 2012-10-01T16:26:06.900 に答える
0

返事が少し遅くなりましたが、最近同じ問題が発生し、解決方法を見つけたので、興味のある方は...

明らかに、ビューが他のビューの上に移動している場合、それらは強制的に再描画されます。過度の再描画を防ぐ 1 つの方法は、ビュー階層をフラットにすることです。

ただし、一度に複数のアニメーションがある場合、これでは不十分な場合があります。その場合、ハードウェア アクセラレーションが有効になっているデバイスのプログラミングを行うと、バックグラウンド ビューなどの再描画されるビューでそれを無効にすることが役に立ちます (View.setLayerType(View.LAYER_TYPE_SOFTWARE, null)たとえば、 を呼び出します)。理由はよくわかりませんが、アニメーションが非常にスムーズになります。おそらく、GPU がすべての再描画を処理できないためです。

于 2014-12-02T01:23:12.807 に答える
0

Android バージョン 4.0 (Ice cream Sandwich) より前のバージョンでは、流動的なアニメーションは期待できないと思います。それ以降の Android バージョンでそれらを実行してみてください。大きな違いがあることがわかります。

于 2013-01-13T16:44:36.893 に答える
0

私の経験では、メモリの使用はアニメーションのパフォーマンスに影響を与える可能性があります。そのため、アプリのメモリ フットプリントを減らすことができれば、プラスの影響がある可能性があります。これを行う簡単な方法の 1 つは、使用している画像のファイル サイズを小さくすることです。

于 2015-04-27T17:28:25.787 に答える