Gen*_*eti 8 android bitmap android-canvas
我正在创建一个应用程序,在用户控制下进行绘图等操作,然后让它们保存.我试图实现这一点的方法是使用画布绘制的自定义位图,然后保存生成的位图.
一切都按预期工作,直到调用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)
Run Code Online (Sandbox Code Playgroud)
抛出异常的代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
android.view.HardwareCanvas甚至没有在android的引用上.但我能够找到一些有关它的信息.似乎它的setBitmap(Bitmap)尚未编写,这没关系.
我的问题是为什么onDraw(Canvas)返回一个HardwareCanvas类?它甚至不是Canvas的超级类.
奖金问题:有什么方法吗?
如果要在Bitmap上绘制,则应创建一个新的Canvas,将位图传递给它.不应该允许您更改应该绘制视图的画布的目标.因此,只需使用位图创建一个新画布,然后在onDraw方法中在画布上绘制结果位图.
| 归档时间: |
|
| 查看次数: |
3099 次 |
| 最近记录: |