我正在绘制画布,只是试图将画布保存为 JPEG。我在某些设备上对此进行了测试,发现它似乎不适用于 ICS,并在我尝试以下代码时出现 UnsupportedOperationException 错误:
Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
canvas.setBitmap(bitmap);
// Drawing to canvas here
OutputStream stream = new FileOutputStream("/sdcard/test.jpg");
bitmap.compress(CompressFormat.JPEG, 100, stream);
stream.close();
这一切都在 onDraw 方法中完成,错误在 canvas.setBitmap(bitmap) 上。
这在我的 Droid X(2.3) 和 Tab 10.1(3.1) 上运行良好,但在运行 ICS 时在我的 Galaxy Nexus(4.0) 和 Tab 10.1 上失败。我可能只是在看一些非常简单的东西。我大部分时间都在为此工作,但没有取得任何进展。任何想法将不胜感激!
更新:我关闭了“强制 GPU 渲染”,现在它似乎可以工作了。必须有更好的方法来做到这一点。