我正在绘制自定义位图,然后在onDraw方法中将此位图绘制到画布。
自定义位图和画布创建:
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);
}
因此,如果我有一个红色圆圈,将颜色更改为蓝色并绘制另一个圆圈,位图中的两个圆圈都是蓝色。这是为什么?我该如何解决这个问题?
答案 0 :(得分:1)
对于您正在做的事情,在绘制到画布时传递绘画颜色没有意义。这就是画布上出现paint
的当前颜色的方式。如果您查看文档,则可以null
。
正如评论中指出的那样,位图的配置对于您想要做的事情是不正确的。我建议ARGB_8888
更有可能是你需要的,所以:
Bitmap.createBitmap(w - 150, h, Bitmap.Config.ARGB_8888);
和
canvas.drawBitmap(bitmap, 0, 0, null);