这是一个概念性问题,从这里开始:
我应该创建,编辑,保存和重新使用CustomView,该View应该由一个父矩形和12个内部矩形/多边形组成。我应该能够从代码中引用它们。
最简单的解决方案是绘制12个矩形,彼此相邻,但它可能太重了。我当时想的是绘制一个巨大的Rectangle并将其分成多个部分(例如GIS中的多边形),但是我没有发现任何类似的痕迹。
如果有人可以提出一些轻量级的概念,我会很高兴。
答案 0 :(得分:0)
一般的解决方案呢?在这种情况下,您可以像这样对矩形建模:
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)
}
}
答案 1 :(得分:0)
回到问题->最后,我通过扩展RectF并分别修改了每个矩形,以得到我需要的东西。由于它是静态的,并且没有性能问题,所以我保留了它。