首页 > 解决方案 > Android:如何在画布上填充中心圆?

问题描述

如何填充画布上的中心圆圈?

问题:在画布上画两个圆圈

在此处输入图像描述

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    Paint p = new Paint();
    p.setColor(Color.RED);
    DashPathEffect dashPath = new DashPathEffect(new float[]{5,5}, (float)1.0);

    p.setPathEffect(dashPath);
    p.setStyle(Style.STROKE);

    for (int i = 0; i < 2; i ++) {
        canvas.drawCircle(200, 200, 50+(i*40), p);
    }

    invalidate();
}

标签: javaandroidcanvas

解决方案


你需要Style.FILL内圈。

private final Paint p = new Paint();
private final DashPathEffect dashPath = new DashPathEffect(new float[]{5,5}, (float)1.0);

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    p.setColor(Color.RED);
    p.setPathEffect(dashPath);
    p.setStyle(Style.STROKE);
    // outer circle
    canvas.drawCircle(200, 200, 50, p);

    p.setStyle(Style.FILL);
    // inner circle
    canvas.drawCircle(200, 200, 90, p);

    invalidate();
}

推荐阅读