0
我正在創建一個佈局位圖。它在大多數設備上工作正常,但是在少數三星設備中,其投擲OOM。下面是我用於將佈局轉換爲位圖的代碼從視圖創建位圖時的Android OOM
private void enableViewCache() {
viewToConvert.setDrawingCacheEnabled(true);
viewToConvert.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.AT_MOST),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.AT_MOST));
viewToConvert.buildDrawingCache(true);
}
public Bitmap getBitmapFromView() {
Bitmap b = Bitmap.createBitmap(viewToConvert.getDrawingCache());
viewToConvert.setDrawingCacheEnabled(false);
viewToConvert.destroyDrawingCache();
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
return b;
}
我在Bitmap.createBitmap調用中獲得了OOM。我已經檢查了stackoverflow中提到的大部分OOM位圖問題,這些問題都提到了關於使用抽樣和所有內容,但我不知道如何在此用例中實現該問題。
這些舊設備?也許嘗試使用較低的壓縮質量 –
OOM出現在Bitmap.createBitmap方法本身中。它主要發生在像三星s2和note這樣的舊設備上 – Kumar