私は、DrawViewを呼び出すアクティビティを作成しました。私はCanvasをバイナリツリーのように描画します。キャンバスのサイズは画面のサイズよりも大きく、onDraw関数は表示される部分だけでなく、すべてのキャンバスを描画します。私は水平スクロールビューと垂直スクロールビューを追加しました。明らかに、onDrawは何度も呼び出されてビューを更新します。 onDraw関数を呼び出す必要なく、その画像を使ってツリーを表示するためにキャンバスを画像(ビットマップなど)に描画できるかどうかは疑問でした。 私はこれを行うことができない場合、より速い視野を得るために私は何ができますか?Android:より速いonDraw()を得る方法
1
A
答えて
1
技術的には、キャンバスはビットマップを描画します。つまり実際は画面よりも大きいビットマップです。なぜビットマップを画面よりも大きくしていますか?より大きなビットマップ=より多くのメモリ使用 - これは少し減速する可能性があります。あなたは本当に画面の切り抜かれた範囲内に描画するだけです - あなたはあなたが画面から外れていると思うかもしれませんが、あなたはそうではありません。別のビットマップに描画することはあなたを助けません - あなたはすでにそれをやっています。あなたのコードを見ずに、あなたは試みることができる:
- のみだけあなたのバイナリツリーが静的であることを意味するならば、ただ/ PNGを作成
- を変更したものを再描画
invalidate(rect)
を呼び出すことにより、バイナリツリーに変更内容を描きますそれのJPG、すべて自分 - はあなたが
4
API 11以上を使用している場合は、マニフェストのアプリケーションタグでハードウェアアクセラレーション属性を使用できます。
<application ... android:hardwareAccelerated="true" ...>
View以外のレンダリングを使用すると考えられる以外は、SurfaceViewもご覧ください。
一般的に、UIコンポーネント(Buttonなど)をビルドしない限り、Viewをオーバーライドしないようにしてください。
関連する問題
- 1. キャンバスandroidのonDraw()メソッドでBitmapを高速に描画する方法
- 2. OnDraw Android(monodroid)
- 3. Android Bitmap OnDraw
- 4. AndroidのOnDraw()
- 5. Androidのカスタムレイアウト - onDraw()
- 6. AndroidビューonDraw()質問
- 7. Android SurfaceView onDraw質問
- 8. リストアイテムのバージョンを削除するより速い方法
- 9. SetPixel()よりもピクセルを変更する方法が速い
- 10. スイングを使用してより速くより速い壁時計を作る方法は?
- 11. onDrawメソッドの外にあるAndroidグラフィック
- 12. より速いアルゴリズム
- 13. より速いstrptime?
- 14. xmlをより速く読む方法はありますか?
- 15. Code :: Blocks - 新しいファイルを追加するためのより速い方法
- 16. どんなプログラミング方法がより速いのですか?
- 17. より速いExtJs 4の学習方法
- 18. AndroidでGPSから最も正確な速度を得る方法
- 19. 入れ子のwhileループをより速く作る方法
- 20. PRAGMA synchronous = OFFでSQLiteをより速く実行する方法
- 21. openmpコードのパフォーマンスとそれをより速くする方法
- 22. ASP.net - C# - それをより速く実行する方法ajaxToolkit:ToolkitScriptManager
- 23. MSVCデバッグビルドをより速く実行する方法
- 24. mySQL - ページビューをより速くインクリメントする方法は?
- 25. コードの結果をより速く見る方法
- 26. ノードインスペクタでアプリケーションスクリプトをより速く見つける方法は?
- 27. 私のアプリケーションコピーファイルをより速く作る方法
- 28. HTMLフォームをより速く構築する方法
- 29. Android onDrawメソッドの遅延を追加
- 30. RubyのDir.globに代わるより速い方法がありますか?
私のツリーは静的なので、2番目のソリューションポイントのようなものを実装するにはどうすればいいですか?つまり、png/jpgを書き出すことはできますが、ユーザーがスクロールしたときにそのビューに表示するにはどうすればいいですか? – Ant4res
静的なpng/jpgイメージを作成したら、canvas.drawBitmap()を呼び出してdocsを呼び出します。または(必要に応じて)ImageViewを使用してイメージを設定することができます。 – dbryson
多くのおかげで、私はあなたが示唆するようにしようとします。 – Ant4res