2016-12-28 31 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); 
相關問題