gpt4 book ai didi

java - android canvas.drawBitmap() 用一种颜色绘制整个位图

转载 作者:行者123 更新时间:2023-12-01 09:04:51 25 4
gpt4 key购买 nike

我正在做一个简单的绘画程序。

我正在绘制自定义位图,然后在 onDraw 方法中将此位图绘制到 Canvas 上。

自定义位图和 Canvas 创建:

bitmap = Bitmap.createBitmap(w - 150,h,Bitmap.Config.ALPHA_8);
canvasa = new Canvas(bitmap);

当有人触摸屏幕时,会绘制一个圆圈:

canvasa.drawCircle(x, y, 10, paint);

效果很好,但是每次在屏幕上绘制位图时,每个圆圈都具有相同的颜色(绘制当前颜色):

@Override
protected void onDraw(Canvas canvas) {
canvas.drawBitmap(bitmap,0,0, paint);
super.onDraw(canvas);
}

因此,如果我有一个红色圆圈,请将颜色更改为蓝色并绘制另一个圆圈,位图中的两个圆圈都是蓝色的。这是为什么?我该如何解决这个问题?

最佳答案

对于您正在做的事情,在绘制时将油漆颜色传递到 Canvas 是没有意义的。这就是 paint 当前颜色在 Canvas 上的显示方式。如果您检查文档,您会发现这可能是 null

正如评论中所指出的,位图的配置对于您想要执行的操作来说是不正确的。我建议 ARGB_8888 更有可能是您所需要的,因此:

Bitmap.createBitmap(w - 150, h, Bitmap.Config.ARGB_8888);

和:

canvas.drawBitmap(bitmap, 0, 0, null);

关于java - android canvas.drawBitmap() 用一种颜色绘制整个位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41366154/

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