2011-06-26 20 views
1

我想弄清楚如何分層兩個畫布,其中一個有位圖,第二個是我將實際繪製的畫布。頂部堆棧畫布位圖,但底部畫布上的更改顯示通過

所以基本上我是:

Bitmap newBitmap = Bitmap.createBitmap(img.getWidth(), img.getHeight(), 
      Bitmap.Config.RGB_565); 
    Canvas newCanvas = new Canvas(); 
    newCanvas.setBitmap(newBitmap); 
    if (img != null) { 
     newCanvas.drawBitmap(img, 0, 0, null); 
    } 
    mBitmap = newBitmap; 
    imageCanvas = newCanvas; 

    mCanvas = new Canvas(); 
    drawBitmap = Bitmap.createBitmap(img.getWidth(), img.getHeight(), 
      Bitmap.Config.RGB_565); 
    mCanvas.setBitmap(drawBitmap); 

其中mCanvas是用戶將借鑑和imageCanvas就是位圖繪製。

圖像是黑色和白色,我希望黑色線條始終顯示,因此我希望它成爲堆疊的頂部。

看來我需要確保圖像的白色部分需要透明,當我加載圖像時可能需要做的事情,因爲期待它像這樣太多了,不能期待。

那麼,如何在同一視圖中堆疊這兩個畫布並在底部畫布上顯示drawLine

我沒有看這個問題,但我不認爲這是類似的:

layered images plus canvas

回答

0

解決的辦法是比我預想的簡單。

我有一個菜單選項,允許用戶繪製透明圖像,以便只有圖像的黑線是可見的,圖像的其餘部分是透明的。

通過這樣做,我就可以繪製用戶正在繪製的位圖,首先繪製大多數透明顏色的圖像。

這使得黑色線條始終可見。

我可能需要使用PorterDuff xfer模式使其看起來更好,但這符合我最初的要求。

讓我感到驚訝的是,在背景上繪製圖像無法正常工作。

我正在做一個自定義視圖中的所有這一切。