2011-07-07 33 views
4

畫布和位圖之間的關係是什麼?畫布和位圖之間的關係是什麼?

Bitmap drawingBitmap = Bitmap.createBitmap(bmp1.getWidth(), 
bmp1.getHeight(), bmp1.getConfig()); 
canvas = new Canvas(drawingBitmap); 
paint = new Paint(); 
canvas.drawBitmap(bmp1, 0, 0, paint); 
paint.setXfermode(new PorterDuffXfermode(android.graphics.PorterDuff.Mode.SCREEN)); 
canvas.drawBitmap(bmp2, 0, 0, paint); 
compositeImageView.setImageBitmap(drawingBitmap); 

我不明白這段代碼。爲什麼drawingBitmap是bmp1和bmp2的組合?

回答

9

基本上,CanvasBitmap支持,因此當您使用畫布繪製任何東西時,畫布將繪製到它創建的Bitmap中。因此,當您使用畫布繪製這兩個位圖時,它將把位圖合併在一起,並且結果將存儲在drawingBitmap中,因爲它支持畫布。

映的比喻是正確的十歲上下,雖然可能混淆(和過度簡化,這我也做以上) - 正如我在評論中提到,你能想到的Canvas爲筆,在Paint作爲該筆的配置(例如,可替換的墨水或其他東西 - 無論您可以適用於可配置筆的想法)以及作爲您所繪製紙張的Bitmap。如果過於關注單詞的接受意義,這個比喻會變得混亂。

3

讓我們將畫布視爲一支筆,並將drawingBitmap視爲一張紙。你用你的筆在你的紙上畫一些東西,然後你得到你所畫的東西。從技術上講,你可以從位圖構造Canvas對象來繪製其他位圖。

+0

謝謝您的輸入。但我認爲油漆是一支筆,而不是畫筆作爲筆! – Judy

+1

將畫布想象爲筆和畫筆作爲筆的某種配置,這種比喻可能對您更好。 – nil

相關問題