在Android中绘制贝塞尔曲线形状,可以使用Canvas和Path类来实现。下面是一个示例代码,演示了如何绘制二次和三次贝塞尔曲线形状:
public class BezierView extends View {
private Paint mPaint;
private Path mPath;
public BezierView(Context context) {
super(context);
init();
}
public BezierView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init();
}
public BezierView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
mPaint = new Paint();
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setAntiAlias(true);
mPaint.setStrokeWidth(5f);
mPaint.setColor(Color.BLACK);
mPath = new Path();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
// 二次贝塞尔曲线形状
mPath.reset();
mPath.moveTo(0, height / 2);
mPath.quadTo(width / 2, 0, width, height / 2);
canvas.drawPath(mPath, mPaint);
// 三次贝塞尔曲线形状
mPath.reset();
mPath.moveTo(0, height / 2);
mPath.cubicTo(width / 4, 0, width * 3 / 4, height, width, height / 2);
canvas.drawPath(mPath, mPaint);
}
}
在布局文件中使用该自定义View:
这个示例中,我们创建了一个自定义的BezierView类,继承自View类。在init()方法中初始化了画笔和路径对象。在onDraw()方法中,我们使用moveTo()方法将路径移动到起始点,然后使用quadTo()方法绘制了一个二次贝塞尔曲线形状,使用cubicTo()方法绘制了一个三次贝塞尔曲线形状。
最后,在布局文件中使用该自定义View即可看到绘制出的贝塞尔曲线形状。