0

たくさんのドローアブルを含むリストビューを備えたAndroidアプリを開発しています。それらのほとんどは同じであるため、必要なときに同じ割り当てられたビットマップを返すHashMapを使用しようとしていますが、スクロール時にリストがときどきスタックするように、割り当てとGCアクションがたくさんあります。

このような場合、パフォーマンスを最適化するにはどうすればよいですか?

キャッシング方法-Googleコードを使用したloadImage

mImageWorker.loadImage(pic_url, holder.pic);
holder.*some bitmap*.setImageBitmap(Utility.getBitmap(context, id); //can be one of 5 bitmaps do I use caching with a hashMap
4

3 に答える 3

2

この例を参照してください。 これは役に立ちます。

getView()メソッドの下にそれほど多くのプロセスを置かないでください。画像のクラッピングやビットマップ変換などに描画できるようにする場合は、リストビューのスクロールパフォーマンスが不足します。アダプタをロードする前にすべてのプロセスを実行し、getView()で各行に値を割り当てるだけです。

于 2012-06-05T13:03:38.357 に答える
1

コードを最適化する場合は、リストに画像を読み込むための遅延読み込みの概念を試してください。参照してください:Android(初心者レベル)のリストビューで画像を遅延ロードしますか?

于 2012-06-05T12:37:59.377 に答える
1

キャッシュを使用した遅延読み込み手法を使用してみてください。Web上に多くのチュートリアルがあります。

このSOスレッドを見る必要があります

これも参照してください:

パフォーマンスのためのマルチスレッド、GillesDebunneによるチュートリアル。

これはAndroid開発者ブログからのものです。提案されたコードは以下を使用します:

  1. AsyncTasks。
  2. ハードで制限されたサイズのFIFOキャッシュ。
  3. ソフトで簡単にガベージコレクションされるキャッシュ。
  4. ダウンロード中のプレースホルダーDrawable。
于 2012-06-05T12:38:57.623 に答える