1

私には大きなカスタムViewがあり、その上に多くのリッチ テキスト、多くのフォント、複数の色、フォント サイズを描画します。この図面は可能な限り最適化済みです。再描画には約 300ms かかります。

この 300ms は 1 回の呼び出しで問題ありませんが、myViewは画面よりも大きいため、ScrollView に挿入され、ユーザーが指でスクロールすると、onDraw()繰り返し呼び出されます。これは非常にずさんなスクロールをします。

同じアプリケーションは以前に iOS 用に作成されており、iOS は onDraw を呼び出さず (iOS の世界では呼び出されていると思いますdrawRect())、描画されたすべての画像は何らかのバッファーに格納されるため、実際のスクロールは非常に高速で非常にスムーズです。おそらくハードウェアが高速化。

「No onDraw」のスムーズスクロールのようなものを実現する方法はありますか? ビットマップに描画し、スクロール フェーズ中にビットマップをブリットすることを考えていました。しかし、テキストを描画するよりも速くなるでしょうか? ビットマップは Android で HW アクセラレーションされますか? この種の問題に対する最善のアプローチは何ですか?

ありがとうございました

4

1 に答える 1

2

associatedを使用して描画全体をBitmapオブジェクトにし、 this をフラッシュするだけです。データを変更したら、すべてを に再描画します。CanvasonDrawBitmapBitmap

于 2013-06-11T09:17:25.463 に答える