我正在绘制一个画布,并试图将画布保存为JPEG。我已经在某些设备上测试了这一点,并发现它似乎并没有对ICS工作,给我时,我尝试下面的代码一个UnsupportedOperationException错误:为什么setBitmap在ICS中似乎不起作用?
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(位图)上。
这适用于我的Droid X(2.3)和选项卡10.1(3.1),但在Galaxy Nexus(4.0)和我的选项卡10.1运行ICS时失败。我可能只是在寻找一些非常简单的东西。我一直在大部分时间都在进行这项工作,而没有取得任何进展。任何想法将不胜感激!
更新: 我关闭了“强制GPU渲染”,现在它似乎工作。必须有更好的方式来做到这一点。
嗯,我的设置中禁用了严格模式。我试图从一个AsyncTask这样做,但我猜测,因为它必须重画画布以将其保存到位图,我得到泄漏的窗口错误。 – Mark