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版权协议,转载请附上原文出处链接和本声明。