Холст: Разделение прямоугольника на несколько под прямоугольников - PullRequest
0 голосов
/ 16 января 2020

Это концептуальный вопрос, здесь он начинается:
Я должен создать, отредактировать, сохранить и повторно использовать CustomView, который должен состоять из одного родительского Rectange и 12 внутренних Rectanges / Polygons. Я должен иметь возможность ссылаться на каждый из них из кода.

Самым простым решением было бы нарисовать 12 прямоугольников, расположенных рядом друг с другом, но это может быть слишком тяжело. Я думал о том, чтобы нарисовать огромный прямоугольник и разделить его на части (как, например, многоугольники в ГИС), но я не нашел ни единого следа такой вещи.
Если кто-нибудь может предложить какую-то легкую концепцию, я был бы более чем счастлив.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Возвращаясь к вопросу -> в конце я создал каждый прямоугольник отдельно, расширив RectF и немного изменив его, чтобы получить то, что мне нужно. Так как это stati c и не имеет проблем с производительностью, я сохранил его.

0 голосов
/ 16 января 2020

Как насчет общего решения, где вы моделируете прямоугольник, подобный этому:

data class Coord(val x: Float, val y: Float)

data class Rectangle(val topLeft: Coord, val bottomRight: Coord, val childRectangles: Collection<Rectangle>)

Затем у вас есть функция рисования, подобная этой:

fun draw(rectangle: Rectangle, canvas: Canvas, paint: Paint) {
    canvas.drawRect(
            rectangle.topLeft.x,
            rectangle.topLeft.y,
            rectangle.bottomRight.x,
            rectangle.bottomRight.y,
            paint
    )

    rectangle.childRectangles.forEach { childRectangle ->
        draw(childRectangle, canvas, paint)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...