단색 PNG 이미지 (단색으로 채워진 비트 맵)를 생성하고 저장해야합니다.안드로이드에서 단색 PNG 비트 맵을 생성하고 저장하는 동안 메모리 사용량을 줄입니다.
내가 비트 맵 만드는거야 :
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;
}
및 장치 스토리지의 파일에 저장이 :
stream = new FileOutputStream(filePath);
success = bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
나는 1200 × 1200 비트 맵을 작성하는 경우, 메모리 소비는 5,760,000 바이트 (이다 5.76 MB), 으로보고 됨 bitmap.getAllocationByteCount(). 그러나 PNG 파일 크기는 8,493 바이트입니다.
파일 크기가 8KB에 불과하므로 거의 6MB의 메모리를 할당하는 것이 과도한 것처럼 보입니다.
더 나은 방법이 있습니까?
왜? ColorDrawable을 사용하는 것이 좋습니다. –
@GabeSechan 메모리에 비트 맵을 할당하지 않고 PNG 파일에 ColorDrawable을 직접 쓸 수 있습니까? – AnAurelian