参考:
https://github.com/angcyo/RoundAngleFrameLayout
核心代码:
@Override
protected void dispatchDraw(Canvas canvas) {
canvas.saveLayer(new RectF(0, 0, canvas.getWidth(), canvas.getHeight()), imagePaint,Canvas.ALL_SAVE_FLAG);
super.dispatchDraw(canvas);
drawTopLeft(canvas);//用PorterDuffXfermode
drawTopRight(canvas);//用PorterDuffXfermode
drawBottomLeft(canvas);//用PorterDuffXfermode
drawBottomRight(canvas);//用PorterDuffXfermode
canvas.restore();
}
roundPaint = new Paint(); roundPaint.setColor(Color.WHITE); roundPaint.setAntiAlias(true); roundPaint.setStyle(Paint.Style.FILL); roundPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)); imagePaint = new Paint(); imagePaint.setXfermode(null);