2016-12-28 25 views
0

即时通讯做一个简单的绘画程序。android canvas.drawBitmap()绘制一个颜色的整个位图

我正在绘制一个自定义的位图,然后将这个位图绘制到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); 
} 

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

+1

阅读有关'Bitmap.Config.ALPHA_8' – pskink

+0

@pskink感谢的人....有一件事我没有检查:D –

回答

1

对于您正在做的事情,在绘制到画布时传递绘画颜色没有任何意义。这就是当前颜色paint出现在画布上的方式。如果你检查你看到的文件,可以是null

也正如在评论中指出的那样,位图的配置对于你想要做的事情是不正确的。我建议ARGB_8888更可能你在这里需要什么,所以:

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

和:

canvas.drawBitmap(bitmap, 0, 0, null); 
相关问题