一直想利用贝塞尔曲线绘制曲线图形然后填充颜色,下面就拿一个小例子看下
public class MyView2 extends View {
private final static int RIPPLE_COLOR = 0xFFFA6F69;
private Paint mPaint;
private Path mPath;
private int mHeight, mWidth;
public MyView2(Context context) {
super(context);
init();
}
public MyView2(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
private void init() {
mPaint = new Paint();
mPaint.setColor(RIPPLE_COLOR);
mPaint.setAntiAlias(true);
mPath = new Path();
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mHeight = h;
mWidth = w;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
mPath.reset();
mPath.moveTo(0, 0);
mPath.lineTo(0, (float) (mHeight*0.8));
mPath.quadTo(mWidth / 2, mHeight, mWidth, (float) (mHeight*0.8));
mPath.lineTo(mWidth, 0);
mPath.close();
canvas.drawPath(mPath, mPaint);
}
}
效果图如下