我在我的活动中遇到了OOM错误。我有一个使用两个图像浏览和大约5或6个按钮的布局。目前,我得到一个OOM错误,但注意到这些方法的改进。我在主屏幕使用这个方法来设置我的布局:如何从视图中释放背景
private void createButtons()
{
bitmaps = new ArrayList<Bitmap>();
ImageView img = (ImageView)findViewById(R.id.homescreen_logo);
Bitmap bmp = (Bitmap)BitmapFactory.decodeResource(getResources(), R.drawable.homescreen_logo);
img.setImageBitmap(bmp);
bitmaps.add(bmp);
ImageView imge = (ImageView)findViewById(R.id.countdown_labels);
Bitmap bitmp = (Bitmap)BitmapFactory.decodeResource(getResources(), R.drawable.homescreen_countdown_text);
imge.setImageBitmap(bitmp);
bitmaps.add(bitmp);
}
然后,在的onPause方法我把这个方法:
private void recycleHomescreenImages() {
for (Bitmap bmap : bitmaps) {
bmap.recycle();
}
bitmaps = null;
}
虽然这确实在退出主屏幕活性降低我堆的使用情况,那还不够。由于我使用的其他视图不是ImageView,因此我不能使用仅使用setImageBitmap()方法的相同策略。有关我如何还可以强制收集按钮背景的建议?这是我的一个按钮在xml中的样子。
<Button
android:id="@+id/1_button"
android:layout_width="294dp"
android:layout_height="60dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="33dp"
android:background="@drawable/homescreen_button_1"
android:onClick="onClick1"/>
感谢您的任何帮助。
你是什么意思加载懒惰? – user1132897 2012-07-30 15:30:10
看到这个线程:http://stackoverflow.com/questions/36274/what-is-lazy-loading – overbet13 2012-07-30 16:26:00