2012-04-04 55 views
0

好的,必須看看這個圖形專家。我有一個矩形位圖(大)和一個圓形位圖(小)。我想把較大的矩形位圖放在較小的圓形位圖後面,較大的矩形位圖採用較小的圓形位圖的形狀(即矩形位圖應該被剪切或以其他方式)。較小的圓形位圖具有一些透明度,因此剪切後的矩形位圖將在轉換後顯示。我曾嘗試以下:Android:將大位圖放在小位圖和大位圖後面應該形成更小的位圖

protected void onDraw(Canvas c) { 

int sc = canvas.saveLayer(x, y, x + w, y + h, null, 
           Canvas.MATRIX_SAVE_FLAG | 
           Canvas.CLIP_SAVE_FLAG | 
           Canvas.HAS_ALPHA_LAYER_SAVE_FLAG | 
           Canvas.FULL_COLOR_LAYER_SAVE_FLAG | 
           Canvas.CLIP_TO_LAYER_SAVE_FLAG); 

canvas.drawBitmap(bmpSmallCircular, 0, 0, backgroundPaint); 
backgroundPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP)); 
canvas.drawBitmap(bmpLargeRectangular, 0 , 0, backgroundPaint); 
backgroundPaint.setXfermode(null); 
canvas.restoreToCount(sc); 

} 

所以,這給解決方案的一部分,但矩形位圖繪製在小位圖(儘管它承擔較小的形狀)。我可能錯過了一些明顯的東西,並會讚賞一點,或者朝正確的方向前進。謝謝!

回答

0

先畫那麼大的位圖繪製您需要交換的聲明只是

canvas.drawBitmap(bmpLargeRectangular, 0 , 0, backgroundPaint); 
canvas.drawBitmap(bmpSmallCircular, 0, 0, backgroundPaint); 
+0

感謝小位圖,已經試過了。由於矩形比圓大,因此它延伸到圓以外(不是我所需要的)。我需要用圓來覆蓋矩形的任何部分,以便隱藏在圓外的矩形。 – user1312428 2012-04-04 13:33:35

+0

你可以顯示圖像實際上你想要的和你目前如何獲得 – Pratik 2012-04-04 13:40:18

+0

試圖添加圖像,但因爲我是新的,看起來像這是一個問題。但是,我確實上傳了示例到這裏:http://img805.imageshack.us/img805/7628/circleoverlay.png希望通過。如果您可以查看圖像,則在箭頭的右側,矩形的散列區域從視圖中隱藏。謝謝。 – user1312428 2012-04-04 14:27:21