Android 画布:将矩形划分为若干子矩形

Android 画布:将矩形划分为若干子矩形,android,android-canvas,polygon,Android,Android Canvas,Polygon,这是一个概念性问题,从这里开始: 我应该创建、编辑、保存和恢复一个CustomView,它应该由一个父矩形和12个内部矩形/多边形组成。我应该能够从代码中引用它们中的每一个 最简单的解决方案是画12个矩形,一个挨着一个,但可能太重了。我当时想的是画一个巨大的长方形,然后将它分成几个部分(例如GIS中的多边形),但我没有找到任何这样的痕迹。 如果有人能提出一些轻量化的概念,我会非常高兴。那么一般的解决方案呢,在这个方案中,您可以对如下矩形进行建模: data class Coord(val x:

这是一个概念性问题,从这里开始:
我应该创建、编辑、保存和恢复一个CustomView,它应该由一个父矩形和12个内部矩形/多边形组成。我应该能够从代码中引用它们中的每一个

最简单的解决方案是画12个矩形,一个挨着一个,但可能太重了。我当时想的是画一个巨大的长方形,然后将它分成几个部分(例如GIS中的多边形),但我没有找到任何这样的痕迹。

如果有人能提出一些轻量化的概念,我会非常高兴。

那么一般的解决方案呢,在这个方案中,您可以对如下矩形进行建模:

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)
    }
}

回到问题->最后,我分别创建了每一个直立角,扩展了RectF并对其进行了一些修改,以获得所需的内容。因为它是静态的,没有性能问题,所以我保留了它