2012-04-04 68 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