Android использует холст для рисования пользовательской формы

#android #canvas

Вопрос:

У меня есть Л Т Р Б позиции. Я хочу нарисовать закругленный прямоугольник. Вот мой код:

 override fun onDraw(canvas: Canvas?) {
    super.onDraw(canvas)
    val curvePath = Path().apply {
        moveTo(left.x, left.y)
        lineTo(bottom.x, bottom.y)
        arcTo(bottom.x, right.y, right.x, bottom.y, 135f, 315f, false)
        lineTo(top.x, top.y)
        arcTo(left.x, top.y, top.x, left.y, 315f, 135f, false)
    }
    canvas?.drawPath(curvePath, paint)
}
 

Я не понимаю метод arcTo (), так как я могу нарисовать закругленный прямоугольник, подобный прикрепленному изображению (2 изогнутых контура-полукруг)

введите описание изображения здесь

Ответ №1:

В Path есть метод addRoundRect, более простой, чем добавление частей по отдельности.

 addRoundRect(float left, float top, float right, float bottom, float rx, float ry,Direction dir)