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");