簡體   English   中英

動態畫弧

[英]Dynamically draw arc

我使用onDraw(canvas)畫一條弧:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(new MyView(this));
}

public class MyView extends View {

    public MyView(Context context) {
        super(context);
    }

    @Override
    public void onDraw(Сanvas canvas) {
        super.onDraw(canvas);
        float width = (float) getWidth();
        float height = (float) getHeight();
        float radius;
        if (width > height) {
            radius = height / 4;
        } else {
            radius = width / 4;
        }

        final Paint paint = new Paint();
        paint.setColor(Color.WHITE);
        paint.setStrokeWidth(50);
        paint.setStyle(Paint.Style.STROKE);

        float center_x, center_y;
        center_x = width / 2;
        center_y = height / 4;
        final RectF oval = new RectF();
        oval.set(center_x - radius, center_y - radius, center_x + radius,
                center_y + radius);

        paint.setStyle(Paint.Style.STROKE);
        center_x = width / 2;
        center_y = height * 3 / 4;
        oval.set(center_x - radius, center_y - radius, center_x + radius,
                center_y + radius);

        canvas.drawArc(oval, -90, 45, false, paint);
    }
}

告訴我,如何在canvas.drawArc(oval, -90, 45, false, paint)行中動態更改sweepAngle() == 45的值?

一種解決方案是在您的類中具有一個sweepAngle字段,並在繪制圓弧時使用它而不是45。 然后有一個計時器,該計時器會定期添加到sweepAngle並重新sweepAngle畫布。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM