0

可能重复:
Android:将图像加载到位图对象时出现奇怪的内存不足问题
OutOfMemoryError:位图大小超出 VM 预算:- 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);
        }
    }
4

1 回答 1

0

正如您所说,您已经使用了从裁剪到回收的所有内容,现在也尝试使用 Wea​​kReferences。

如果这也没有帮助,那么您的代码中可能存在内存泄漏。

请查看我对同一问题的回答:位图大小超出 Vm 预算错误 android

这是一个通用的答案,请尝试我提到的所有方法。其中一个应该适合你:)

谢谢你。

于 2012-10-03T07:47:22.613 回答