public class RoundedWebView extends WebView { private Context context; private int width; private int height; private int radius; public RoundedWebView(Context context) { super(context); initialize(context); } public RoundedWebView(Context context, AttributeSet attrs) { super(context, attrs); initialize(context); } private void initialize(Context context) { this.context = context; } @Override protected void onSizeChanged(int newWidth, int newHeight, int oldWidth, int oldHeight) { super.onSizeChanged(newWidth, newHeight, oldWidth, oldHeight); width = newWidth; height = newHeight; //设置圆角 radius = ConvertUtils.dp2px( 15f); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Path path = new Path(); path.setFillType(Path.FillType.INVERSE_WINDING); //顺时针自定义圆角 float radii[] = {0,0,0,0,radius,radius,radius,radius}; path.addRoundRect(new RectF(0, getScrollY(), width, getScrollY() + height), radii, Path.Direction.CW); canvas.drawPath(path, createPorterDuffClearPaint()); } //使用Porter Duff Xfer模式从屏幕"清除"该区域 private Paint createPorterDuffClearPaint() { Paint paint = new Paint(); paint.setColor(Color.TRANSPARENT); paint.setStyle(Paint.Style.FILL); paint.setAntiAlias(true); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); return paint; } }
版权声明:本文为qq_23045311原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。