Как рисовать иконки над прямоугольниками (Rect) в Path с помощью Canvas (Android) - PullRequest
0 голосов
/ 20 мая 2019

В моем 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 изображений к нему вместо фигур.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...