可能重复:
Android: Strange out of memory issue while loading an image to a Bitmap object
OutOfMemoryError: bitmap size exceeds VM budget :- Android
我知道有很多关于这个问题的主题,但无论我尝试什么它似乎都不起作用。
我尝试了几种onDestroy技巧,包括回收位图,将其置于null等等。 不确定我的代码是否与其他情况有所不同?它似乎有点...... 我正在使用TouchImageView扩展,所以我可以使用捏缩放,所以可能会使它更复杂?
无论如何,这是我的代码。有人可以指出我怎么能解决这个问题(顺便说一句没有降低位图的位置)吗?
public class PageActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page);
Intent parent = getIntent();
int pagenumber = parent.getIntExtra("pagenumber", 1);
int resID = getResources().getIdentifier("page"+pagenumber , "drawable", getPackageName());
TouchImageView img = new TouchImageView(this);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resID);
img.setImageBitmap(bitmap);
img.setMaxZoom(4f);
LinearLayout rootview = (LinearLayout) findViewById(R.id.RootView);
rootview.addView(img);
}
}
答案 0 :(得分:0)
正如您所说,您已经使用了从裁剪到回收的所有内容,现在也尝试使用WeakReferences。
如果这也没有帮助,那么您的代码中可能存在内存泄漏。
请在同一问题上查看我的回答:bitmap size exceeds Vm budget error android
这是一个通用的答案,尝试我提到的所有方法。其中一个应该适合你:)
谢谢。