0

WebからダウンロードしたPNG用の画像キャッシュを実装しています。

これまでのところうまく機能しますが、背景が白の画像のほかに、キャッシュ(外部ストレージ)から読み取ったときに背景が薄緑になります。

画像をWebからダウンロードすると、正しく表示されます。ただし、保存して外部ストレージからロードすると、この薄緑色の背景が表示されます。

3つのデバイスでテストしたところ、問題はそのうちの2つ、SamsungGalaxyとHTCの要望にありました。3番目のGalaxyNexusには、この問題はありません。

コードの関連部分:

ファイルに保存:

FileOutputStream outputStream = new FileOutputStream(fileUri);
image.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
outputStream.flush();
outputStream.close();

ファイルの読み取り:

File file = new File(fullCacheDir.toString(), fileName);

Webからダウンロード:

DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet request = new HttpGet(urlString);
HttpResponse response = httpClient.execute(request);
InputStream is = response.getEntity().getContent();

TypedValue typedValue = new TypedValue();
typedValue.density = TypedValue.DENSITY_DEFAULT;
Drawable drawable = Drawable.createFromResourceStream(null, typedValue, is, "src");
4

1 に答える 1

1

問題は、画像を表示する前に、画像をRGB888から16ビットRGB565形式に自動変換することだと思います。この問題に対処する方法についての良い記事があります:ビットマップ形式の問題。

于 2012-10-02T08:31:16.210 に答える