単色のPNG画像を作成して保存する必要があります(ビットマップは単色で塗りつぶします)。Androidで単色のPNGビットマップを作成して保存する際のメモリ使用量を減らす
私は、ビットマップ作成しています:私は1200x1200ビットマップを作成する場合は、メモリの消費量が576万バイト(ある
stream = new FileOutputStream(filePath);
success = bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
:
public static Bitmap createColorSwatchBitmap(int width, int height, int color) {
final Bitmap colorBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
colorBitmap.eraseColor(color);
return colorBitmap;
}
を、デバイスのストレージ上のファイルに保存します5.76 MB)。bitmap.getAllocationByteCount()によって報告されているとおりです。ただし、PNGファイルのサイズはわずか8,493バイトです。
8 KBしかないファイルには6 MBのメモリを割り当てるのは難しいようです。
良い方法がありますか?
なぜですか? ColorDrawableを使うほうがよいでしょう。 –
@GabeSechanメモリにビットマップを割り当てずに、ColorDrawableをPNGファイルに直接書き込むことはできますか? – AnAurelian