gpt4 book ai didi

android - 来自 Canvas.setBitmap(Bitmap) 的 UnsupportedException

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:54:41 24 4
gpt4 key购买 nike

我正在创建一个应用程序,它可以在用户控制下进行绘图等操作,并让他们保存它。我尝试实现此目的的方法是使用 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)

抛出异常的代码:

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 甚至不在 android 的引用上。但是我能够找到有关它的一些信息。好像是setBitmap(Bitmap)还没写,没关系。

我的问题是为什么 onDraw(Canvas) 返回一个 HardwareCanvas 类?它甚至不是 Canvas 的父类(super class)。

奖金问题:有什么办法解决这个问题吗?

最佳答案

如果你想在 Bitmap 上绘图,你应该创建一个新的 Canvas 将位图传递给它。不应允许您更改应在其上绘制 View 的 Canvas 目标。因此,只需使用位图创建一个新 Canvas ,然后使用 onDraw 方法在 Canvas 上绘制生成的位图。

关于android - 来自 Canvas.setBitmap(Bitmap) 的 UnsupportedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22610145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com