我正在尝试在SurfaceView的画布上绘制一个位图(作为背景)
我试过了:
Drawable bg = ContextCompat.getDrawable(surfaceView.getContext(), R.drawable.bg);
bg.draw(canvas);
然后我尝试了:
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = (int) (1600 / width); //since the width of the image is 1600px
BitmapFactory.decodeResource(surfaceView.getResources(), R.drawable.bg, options);
并且两者都导致相同的OOM异常
java.lang.OutOfMemoryError: Failed to allocate a 147456012 byte allocation
with 1048576 free bytes and 95MB until OOM
我很感激有关如何绘制我的.png图像的帮助,这是3MB(1600 * 2560)
答案 0 :(得分:0)
好吧,我不知道为什么3MB无法在没有OOM的情况下最初加载到堆上
但是将大堆线添加到Manifest解决了问题
edit configurations
希望它能帮助那些面临同样问题的人:)