Как я могу рассчитать, где начать мою линию, основываясь на шапке штриха?

Я пытаюсь нарисовать линию, но мне нужно учитывать ширину обводки, чтобы не переполнить контейнер.

У меня есть код, который выглядит так...

private void initialize() {
    this.paint = new Paint();
    this.paint.setColor(Color.BLACK);
    this.paint.setStyle(Paint.Style.STROKE);
    this.paint.setStrokeCap(Paint.Cap.ROUND);
    this.paint.setStrokeWidth(1);
}

public void setStrokeWidth(float strokeWidth) {
    this.paint.setStrokeWidth(strokeWidth);
}

public void onDraw(Canvas canvas) {
    int x_start, x_end, y, cap_width;
    y = this.getHeight() / 2;
    x_start = cap_width; //Need to compensate for cap.
    x_end = this.getWidth() - cap_width; //Need to compensate for cap.

    canvas.drawLine(x_start, y, x_end, y, paint);
}

Обратите внимание, что в методе onDraw приведенного выше кода мне нужно рассчитать ширину кепки. Как я могу это рассчитать?


person Tester101    schedule 06.03.2015    source источник


Ответы (1)


При написании вопроса я понял, что для некоторых ответ может быть довольно очевидным. Для тех, кто не ясно мыслит (как и я), вот решение.

Радиус кепки всегда будет равен половине ширины обводки.

cap_width = (int)paint.getStrokeWidth / 2;
person Tester101    schedule 06.03.2015