我正在创建一个应用程序,可以在用户控制下进行绘图等操作,并让他们保存。我尝试实现这一点的方式是使用自定义位图,在其上绘制画布,然后保存生成的位图。
一切都按预期工作,直到调用Canvas.setBitmap(Bitmap)。
我收到以下错误信息。
一切都按预期工作,直到调用Canvas.setBitmap(Bitmap)。
我收到以下错误信息。
03-24 13:47:50.741: E/AndroidRuntime(27888): FATAL EXCEPTION: main
03-24 13:47:50.741: E/AndroidRuntime(27888): Process: example.imageeditor, PID: 27888
03-24 13:47:50.741: E/AndroidRuntime(27888): java.lang.UnsupportedOperationException
03-24 13:47:50.741: E/AndroidRuntime(27888): at android.view.HardwareCanvas.setBitmap(HardwareCanvas.java:39)
引发异常的代码:
protected void onDraw(Canvas canvas) {
mResultImage=Bitmap.createBitmap(width,height,mOriginalImage.getConfig());
canvas.setBitmap(mResultImage);
canvas.save();
if(mOriginalImage!=null)
canvas.drawBitmap(mOriginalImage, width, height, paint);
else
canvas.drawText("Image loading...", width/2f-20, height/2, paint);
canvas.drawText(text, x, y-20, paint);
canvas.restore();
super.onDraw(canvas);
}
android.view.HardwareCanvas在安卓文档中甚至都没有被提及。但是我找到了一些关于它的信息。
看起来它的setBitmap(Bitmap)方法还没有被编写,这没问题。
我的问题是为什么onDraw(Canvas)返回一个HardwareCanvas类?它甚至不是Canvas的父类。
额外问题:有什么解决方法吗?