0
我繼承了這段代碼,並試圖弄清楚如何使它更有效率,所以我不必拋出OutOfMemory異常。這是爲writeBitmap和readBitmap。位圖內存不足異常拋出新OutOfMemoryException(e);
/**
* Reads bitmap from the state file
*/
void readBitmap(Bitmap bitmap) throws OutOfMemoryException {
byte[] buffer;
try {
buffer = new byte[file.length()];
} catch (OutOfMemoryError e) {
throw new OutOfMemoryException(e);
}
try {
file.readBytes(buffer, 0, 0, buffer.length);
} catch (IOException e) {
throw new RuntimeException(e);
}
Buffer byteBuffer = ByteBuffer.wrap(buffer);
try {
bitmap.copyPixelsFromBuffer(byteBuffer);
} catch (Exception e) {
}
}
但是這是一個狀態文件,而不是當時的實際圖像。 – user1074300 2013-03-24 04:19:34
writeBitmap接受位圖位圖作爲參數。在這一點上它仍然是一張位圖。然後將它放入一個byteBuffer中,然後將其寫入一個文件。我正在取出位圖並將其直接抽入MemoryFile。 – HalR 2013-03-24 04:28:01
對於那些想知道的應該是OutputStream而不是FileOutputStream。 – user1074300 2013-03-24 04:52:30