2014-01-12 163 views
1

我已經繪製了一些rects到一個畫布,我想複製這些rects到另一個畫布。通常討論的使用位圖的解決方案將無法正常工作,因爲我沒有在此畫布中使用位圖,沒有圖像只有那些rects。如何將一個畫布複製到另一個畫布中?

我該怎麼做?

+0

請提供代碼,以便我們可以推薦任何替代選項。而且畫布總是繪製位圖,但沒有辦法從畫布中獲取位圖。 –

回答

1

您是否嘗試在繪製到第一個畫布後保存給予矩形的屬性,然後基於這些屬性在第二個畫布上重繪它們?也許你可以嘗試爲第一個畫布創建一個Rect對象並將它傳遞給第二個畫布上的Canvas.drawRect()?

0

您可以使用畫布創建位圖並在該位圖上繪製。

bitmap = Bitmap.createBitmap(50,50,Bitmap.Config.ARGB_8888); 
Canvas canvas = new Canvas(bitmap); 
// drawn some rects into canvas 

現在,您可以使用位圖繪製任何你想要的畫布;

Canvas canvas1 = new Canvas(bitmap); 
Canvas canvas2 = new Canvas(bitmap); 

或者,如果您已經在帆布:

canvas.drawBitmap(bitmap, 0, 0, paint); 

這樣你畫rects只有一次,而不是每個畫布上。

+0

如果我必須早點決定,我怎樣才能決定將位圖寬度和高度作爲整個畫布? – Omer

+0

您可以使用'createScaledBitmap(位圖src,int dstWidth,int dstHeight,布爾過濾器)' – ramaral

+0

另請參閱'canvas.drawBitmap(位圖位圖,Rect src,Rect dst,Paint paint)'。這將繪製指定的位圖,自動縮放/翻譯以填充目標矩形 – ramaral

相關問題