Android 在自定义视图中仅在一侧绘制矩形
Android draw rect with only curve one side on custom view
我需要这个形状(矩形或任何方式)在 View
android 上绘制。只有一个曲线边。具有 1 种纯色和透明的弯曲面。这个怎么画?
public class CurveView extends View {
@Override
protected void onDraw(Canvas canvas) {
// how to ????
}
}
像这样:
谢谢。
解决方案:
更新:
public class MyView extends View {
private Paint paint;
private Path path;
public MyView(Context context) {
super(context);
init();
}
public void init() {
path = new Path();
paint = new Paint();
paint.setAntiAlias(true);
paint.setDither(true);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.TRANSPARENT);
paint.setShader(null);
float width = getWidth();
float height = getHeight();
path.moveTo(0, 0);
path.lineTo(0, height);
path.lineTo(width, height);
path.lineTo(width, 0);
path.cubicTo(4*width/6, 3*height/4, 2*width/6, 3*height/4, 0, 0);
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
canvas.drawPath(path, paint);
}
}
我需要这个形状(矩形或任何方式)在 View
android 上绘制。只有一个曲线边。具有 1 种纯色和透明的弯曲面。这个怎么画?
public class CurveView extends View {
@Override
protected void onDraw(Canvas canvas) {
// how to ????
}
}
像这样:
谢谢。
解决方案:
更新:
public class MyView extends View {
private Paint paint;
private Path path;
public MyView(Context context) {
super(context);
init();
}
public void init() {
path = new Path();
paint = new Paint();
paint.setAntiAlias(true);
paint.setDither(true);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.TRANSPARENT);
paint.setShader(null);
float width = getWidth();
float height = getHeight();
path.moveTo(0, 0);
path.lineTo(0, height);
path.lineTo(width, height);
path.lineTo(width, 0);
path.cubicTo(4*width/6, 3*height/4, 2*width/6, 3*height/4, 0, 0);
paint.setColor(Color.RED);
paint.setStyle(Paint.Style.FILL);
canvas.drawPath(path, paint);
}
}