0

約50行のListViewがあります。各商品に画像がございます。画像がダウンロードされることもありますが、アプリのリソースから特定の画像を表示することもあります。

問題:

  1. アイテムのリソースから約 20 個の画像を表示することがありますが、それらはすべて同じ画像です。つまり、すべて同じ 20 行の画像を表示するだけです。ビットマップをロードして、各アイテムのRAMの量を取得していますか? または、画像をロードして他のアイテムに表示するだけですか?

  2. 各アイテムのイメージビューのサイズは 100*70 dp です。そのため、ビットマップしてアプリに表示する前に、画像のサイズを変更したり、画像の dp を縮小したりして、必要な RAM の量を減らすことができるようにしたいと考えています。出来ますか ?

ありがとう

4

1 に答える 1

0

同じ画像を複数回表示する

すべての画像を同じ Drawable (変数) として設定すると、リソースから取得したビットマップ Drawable は 1 つだけ RAM に存在します。また、ListView はその行をリサイクルします。RAM にロードされた 20 ビットマップすべてで 20 行を実際に作成するわけではありません。

画像の DPI の設定

BitmapDrawable クラスはレンダリング用の DPI を自動的に決定できるため、コンストラクターで Resources を要求します。または、後で電話することもできますsetTargetDensity(int)注: DPI の変更は、画像のスケーリングとまったく同じではありません。

縮小画像の読み込み

これにより、RAMが確実に節約されます。縮小された画像をロードする方法についての回答を読んでください。

于 2012-12-09T07:16:52.163 に答える