1. Я использую пользовательский вид.
2.Это пользовательский вид, который я реализовал с моей деятельностью.
3. Я завершаю свою деятельность и воссоздаю несколько раз.
Таким образом, он перераспределяет память для создания Bitmap.
Как я могу убедиться, что я не перераспределяю новую память каждый раз.
Как я могу повторно использовать или освобождать уже выделенную память для Bitmap.
Я хочу избавиться от утечки памяти из-за 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 Bitmap является родным объектом, а не находится внутри виртуальной машины Dalvik. Это может быть проблемой в отношении утечек памяти, как вы упомянули. Вы можете, однако, освободить память с помощью этого кода:
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/