インターネットから画像をダウンロードして、画面上で拡大縮小して表示しています。アイデアは、inSampleSize を使用して、解凍中に大きな画像をスケーリングし、OutOfMemory 例外を防ぐことです。しかし、inSampleSize を見つけるには、画像の解像度を知る必要があります。inJustDecodeBounds オプションを使用して取得できます。
問題は、ストリームを渡してインターネットから画像を直接ダウンロードできないことです。これは、画像が 2 回ダウンロードされるためです (最初にサイズを取得し、次にスケーリングされたビットマップを取得するため)。画像のサイズが大きい可能性があるため、画像をダウンロードして RAM に保存できません。残っている唯一の解決策は、イメージを SD カード/内部メモリにダウンロードしてそこから読み取ることですが、ユーザーがスペースを残さないと、悪いことが起こります。
問題は、ストレージと RAM メモリに依存せずに、イメージを 2 回ダウンロードする必要がない方法はないかということです。それとも、BitmapFactory が inJustDecodeBounds を使用しているときにイメージ全体をダウンロードせず、ヘッダーだけをダウンロードするのでしょうか?
ありがとう