0

我正在使用 Kotlin 在 Android 中制作应用程序。我有一个显示面部形状面具的布局。这就是我想要实现的目标:

目标

这是我现在的结果:

结果

在我的代码中,我有一个定义黑色背景的视图。这是我重写的 onDraw 方法:

override fun onDraw(canvas: Canvas?) {

    if(canvas != null) {
        val bitmap = mDrawable!!.toBitmap()
        val marginV = 64

        val left = mDrawable!!.left.toFloat()
        val top = mDrawable!!.top.toFloat() + marginV

        val paint = Paint(Paint.ANTI_ALIAS_FLAG)
        paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.DST_IN)

        // draw hole
        canvas.drawBitmap(bitmap, left, top, paint)
        // draw shape
        canvas.drawBitmap(bitmap, left, top, null)
    }

    super.onDraw(canvas)
}

我真的不知道这里有什么问题。我已经使用矩形而不是位图制作了类似的东西,并且效果很好。

也许问题是我的矢量可绘制?

4

0 回答 0