[英]Free memory allocated by Bitmap in ICS with Custom View
1.我正在使用自定義視圖。
2.我已經在“活動”中實現了此自定義視圖。
3.我正在完成活動並重新創建多個時間。
因此,它正在重新分配內存以創建位圖。
如何確保每次都不會重新分配新的內存。
如何重用或釋放已分配給位圖的內存。
我想擺脫由於Bitmap造成的內存泄漏 。
if (cachedBitmap == null){
cachedBitmap = Bitmap.createBitmap(getWidth(),getHeight(), Config.ARGB_8888);
cachedCanvas = new Canvas(cachedBitmap);
transparentColor = new int[cachedBitmap.getWidth()*cachedBitmap.getHeight()];
for(int i = 0 ; i < (int) 5 *1.5 * cachedBitmap.getHeight() ; i++) {
transparentColor[i] = Color.TRANSPARENT;
}
}
drawStuff(cachedCanvas);
canvas.drawBitmap(cachedBitmap, 0, 0, null);
在舊版Android中,位圖是一個本機對象,而不是駐留在Dalvik VM中。 就像您提到的那樣,這可能是關於內存泄漏的問題。 但是,您可以使用以下代碼自己釋放內存:
Bitmap bmp; // your existing Bitmap
bmp.recycle(); // Clears the bitmap from memory
bmp = null; // Unset it to be sure
final boolean isRecycled = bmp.isRecycled(); // Can be run to check if the
// Bitmap is cleared from memory
如果始終以這種方式清除位圖,則可以避免內存泄漏。 參考: http : //android.okhelp.cz/delete-bitmap-android-example/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.