提问者:小点点

如何用纹理视图在屏幕上使用坐标绘制矩形?


我正在预览相机饲料到纹理视图使用Camerax。 如何使用坐标在屏幕上绘制矩形? 我不想要复杂的函数。 我只是想画一个矩形。 我使用的是kotlin和android studio 4.0。


共1个答案

匿名用户

我会选择在相同XML的Textureview之上重叠的ImageView。 此imageview将加载只绘制矩形的透明位图。 如果你有坐标,你必须做:

val myRectPaint = Paint()
myRectPaint.strokeWidth = 5F
myRectPaint.color = Color.RED
myRectPaint.style = Paint.Style.STROKE

// Create a Canvas object for drawing on the original bitmap provided
val tempBitmap =
    Bitmap.createBitmap(bitmap!!.width, bitmap.height, Bitmap.Config.ARGB_8888)
val tempCanvas = Canvas(tempBitmap)
tempCanvas.drawBitmap(bitmap, 0F, 0F, null)

tempCanvas.drawRoundRect(
            RectF(x1.toFloat(), y1.toFloat(), x2.toFloat(), y2.toFloat()),
            2f,
            2f,
            myRectPaint
        )

// Use this to widen picture on top or bottom
    val croppedFaceBitmap =
        Bitmap.createBitmap(tempBitmap, x1, y1, x2, y2)

在任何情况下,您也可以遵循tensorflow github中的这个示例,当检测到对象时,会绘制圆形框。

希望我帮了你