2017-02-13 1 views
0

簡単な質問です。Androidハードウェアアクセラレーション:アニメーションにハードウェアレイヤが必要ですか?

私は非常に滑らかなUIを提供するために、いくつかのドキュメンテーションを読んでてきました。私は、デフォルトで、SDK 14+をターゲットとするアプリケーションプロジェクトは、ハードウェアアクセラレーションをオンにすることを知っています。この場合

、私は実際にプロジェクトバターの一部として最適化されているプロパティ(アルファ、スケール、移動と回転)を変更し、特定のアニメーションのためのハードウェアレイヤを使用する必要がありますか?

私は、これらの層を知っているが、正しく使用した場合、「プリバッファリング」のアニメーションフレームでレンダリングプロセスを最適化することで、GPUのメモリにそれらを保存します。しかし、いつそれらを使うべきですか?彼らは本当に必要ですか? また、ハードウェアアクセラレーションはそれを実現しますか?ご入力の

ありがとう!

答えて

0

私は少しテストをしたので、私もこの好奇心でした。ハードウェアレイヤのアップデートを表示し、翻訳と一緒に単純な飽和アニメーションを実行しても点灯しませんでした。だから私はLAYER_TYPE_HARDWAREとそれを実行し、十分に点灯した。だから私はそれが役割を果たすと思います。私のNexus 5xのアニメーションではそれほど大きな違いはありませんでした。

+0

あなた飽和アニメーションを定義することはできますか?私も小さなテストをしましたが、新しいプロジェクトのHelloWorldテキストビューの両方の軸でスケールと平行移動の値をアニメートする簡単な10秒間のanimate()で違いは見られませんでした。私はCM 13を実行しているGalaxy Note 3を試してみました.GPUモニタではフレームごとにいくつかの喪失がはっきり見えるでしょう。それは滑らかではありません。どうして ? – Mackovich

+0

彩度アニメーションは基本的に、 'animatedView.setColorFilter()'を使って 'ImageView'カラーフィルタを変更しています。 –

+0

これは最適化されたプロパティの一部ではないのですか?これらのプロパティは、Lolliopopで導入されたRenderThread内で変更されます。あまりにも多くのタスクのUIスレッドを緩和するのに役立ちます。 – Mackovich

関連する問題