画布中透明矩形周围的阴影



我只想要一个空盒子的影子。但如果我给Rect一个透明的Paint颜色,阴影也会变得透明。这可能吗?

Paint paint = new Paint();
//paint.setColor(0x00000000);
paint.setShadowLayer(10, 0, 0, Color.BLACK);
Rect rect = new Rect(0, 0, 100, 100);
canvas.drawRect(rect, paint);

我最终创建了第二个Canvas和第二个Bitmap,然后在用PorterDuff.Mode.CLEAR剪切了一些部分后将它们合并。通过这种方式,我可以像在图像编辑应用程序中一样创建图层,并且不会丢失背景。

这就是我切割零件的方式:

Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
Rect rect = new Rect(left, top, right, bottom);
canvas.drawRect(rect, paint);

这就是我将各层重新组合在一起的方式:

bottomCanvas.drawBitmap(topBitmap, 0, 0, null);

最新更新