有人可以告诉我为什么我的应用程序在samsumg galaxy nexus上正常工作但在三星Galaxy s上崩溃了吗? 我发现它在这一行崩溃了:
bMapRpm=BitmapFactory.decodeResource(getResources(), R.drawable.canvasback);
canvasRpm = new Canvas(bMapRpm);
BitmapFactory.decodeResource工作正常但是当我创建新的Canvas时它会崩溃。
我无法发布logcat,因为我的galaxy s(我不知道为什么)不支持logcat
有人可以帮助我吗?
答案 0 :(得分:2)
我猜,位图必须是可变的。 Doc:"构造一个带有指定位图的画布。位图必须是可变的。"
你可以:
bMapRpm=BitmapFactory.decodeResource(getResources(), R.drawable.canvasback);
Bitmap mutableCopy = Bitmap.createBitmap(bMapRpm.getWidth(),bMapRpm.getHeight(),bMapRpm.getConfig());
canvasRpm = new Canvas(mutableCopy);
canvasRpm.drawBitmap(bMapRpm, null, null);
bMapRpm.recycle();
..做任何想要的画布
答案 1 :(得分:0)
创建可变位图的简便方法, 使用Bitmap.copy(confit,is_mutable), 你可以尝试一下:
bMapRpm=BitmapFactory.decodeResource(getResources(), R.drawable.canvasback);
Bitmap mutableCopy = bMapRpm.copy(Bitmap.Config.ARGB_8888, true);
canvasRpm = new Canvas(mutableCopy);