画布:将矩形划分为几个子矩形

问题描述 投票:-1回答:1

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

最简单的解决方案是绘制12个矩形,彼此相邻,但是它可能太重了。我当时想的是绘制一个巨大的Rectangle并将其分成多个部分(例如GIS中的多边形),但是我没有发现任何类似的痕迹。如果有人可以提出一些轻量级的概念,我会很高兴的。

android android-canvas polygon
1个回答
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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.