另一个'位图大小超过VM预算'

时间:2012-10-03 07:41:52

标签: android bitmap out-of-memory

  

可能重复:
  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);
        }
    }

1 个答案:

答案 0 :(得分:0)

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

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

请在同一问题上查看我的回答:bitmap size exceeds Vm budget error android

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

谢谢。