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并对其进行了一些修改,以获得所需的内容。因为它是静态的,没有性能问题,所以我保留了它