我正在使用 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)
}
我真的不知道这里有什么问题。我已经使用矩形而不是位图制作了类似的东西,并且效果很好。
也许问题是我的矢量可绘制?