В моем View
у меня есть Path
объект:
private var mPath= Path()
У меня есть метод для добавления прямоугольников к этому Path
:
private fun drawRect(path: Path, centerX: Float, centerY: Float, widthRect: Float, heightRect: Float) {
tempSizeXRect = if (widthRect / 1.5f >= heightRect) heightRect * 1.5f / 2f else widthRect / 2f
tempSizeYRect = if (heightRect / 1.5f >= widthRect) widthRect * 1.5f / 2f else heightRect / 2f
drawTempRectF.set(centerX - tempSizeXRect, centerY - tempSizeYRect, centerX + tempSizeXRect, centerY + tempSizeYRect)
path.addRoundRect(drawTempRectF, roundness, roundness, Path.Direction.CW)
}
И я добавляю прямоугольники:
rowsMap.forEach {
drawRect(mPath, it.value.centerX(), it.value.centerY(), it.value.width(), it.value.height())
}
Кроме того, у меня есть Matrix
для преобразования всего моего рисунка:
private var baseMatrix = Matrix()
Мой onDraw()
метод:
override fun onDraw(canvas: Canvas?) {
...
viewCanvas.drawPath(mPath, mPaint)
}
Итак, я могу преобразовать свои Path
, изменив Matrix
свойства:
mPath.transform(mBaseMatrix)
Как я могу рисовать изображения (Bitmap
) над прямоугольниками в Path
таким образом, что изображения будут преобразовываться (масштабироваться и располагаться) в зависимости от их прямоугольников? Мне нужно что-то вроде Path
, чтобы я мог преобразовать с помощью Matrix
и мог бы добавить Bitmap
изображений к нему вместо фигур.