プロパティアニメーションとSurfaceView

Android 3.0用のプロパティアニメーションに大きく依存するアプリケーションを作成しています。私はそれが働いているが、特定の部分で大幅な減速があります。私は、UIのマルチスレッド化が大いに役立つと信じています。当然のことながら、あなたはAndroidのデザインでそれを実際に行うことはできません。私が思っていたのは、 SurfaceView View オブジェクトをレンダリングして、すでに実装されているプロパティアニメーションフレームワークを使用できるかどうかです。 Canvas クラスを使用してオブジェクトを描画する例を見てきましたが、すべてのアニメーションを再実装する必要はありません。 SurfaceViewでAndriodのアニメーション(フレーム、トゥイーン、プロパティ)を使用する人はいませんでした。

0

1 答え

AndroidのアニメーションはSurfaceViewでは動作しません。セカンダリスレッドで手動で行う必要があります。それほど難しいことではありませんが、ほとんどすべてを書き直す必要があります。

(ゲームのような)たくさんのアニメーションを使用している場合は、SurfaceViewに切り替えることを実際に検討する必要があります。これは高速です(この場合滑らかなアニメーションを得る唯一の方法です。アニメーションではオーバーヘッドが多い)。今すぐ切り替えると、後でもっと難しくなります...

私はあなたがこのように行くことを決めたら、いくつかのサンプルを提供することができます。

0
追加された
私は多くのカスタムアニメーション作品を避けようとしていました。私のフレームワークがたくさんあるので、このアプリのiOS版にうまく収まりました。
追加された 著者 DeeV,
はい、私はそれを認識しています。私はどれくらい離れていくことができるかを見ていただけだった。私が開発しているアプリケーションでは、たくさんのビットマップ変換が必要です。私は詳細にはいりたくないが、はい。かなりのアニメーションがあります。 Viewフレームワークを使用することは、それを使用し、他のチームが使用していたものと同じクラス構造を維持するための最も簡単な方法でした。ハードウェアアクセラレーションを有効にしてもうまく動作しましたが、いくつか追加すると速度が落ちました。
追加された 著者 DeeV,
助けてくれてありがとう。減速の主な原因と思われていた見えなくなったビューを削除することで、私は大幅な向上を得ることができました。それでもUIレンダリングのスピードアップの方法が好きだったでしょうが、私が持っているものと一緒に作業しなければならないと思います。再度、感謝します。
追加された 著者 DeeV,
しかし、アンドロイドのUIはiOSのものよりも遅く、特にアニメーションの表示は遅いです。それはアンドロイド4.0で少し改善しましたが、それはまだ遅れています。どのようなアプリケーションを開発していますか?本当にたくさんのアニメーションがありますか?
追加された 著者 Dalmas,
私は traceview ツールを使用して、どの機能がアプリを減速させるのかを確認することをお勧めします。おそらく回避策を見つけることができるでしょう。技術的な問題もあるかもしれませんが、コードはありませんが、もっと手伝うのは難しいです。
追加された 著者 Dalmas,