如何使用画布(Android)在路径中的矩形(矩形)上绘制图标

时间:2019-05-20 18:59:13

标签: android android-canvas android-bitmap

在我的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图像而不是形状。

0 个答案:

没有答案