【发布时间】:2021-02-19 08:58:14
【问题描述】:
我为标签创建了一个示例徽章,我遇到了您在图片中看到的问题。在我看来,内部位图已经在背景矩形中切掉了它的角的圆角区域。
这是我的代码:
fun Bitmap.addBorderAndRoundCorners(borderSize: Int, cornerSize: Int): Bitmap {
val outputBitmap = Bitmap.createBitmap(
this.width + borderSize,
this.height + borderSize,
this.config
)
val rect = Rect(0, 0, outputBitmap.width, outputBitmap.height)
val rectF = RectF(rect)
val paint = Paint().apply {
isAntiAlias = true
isFilterBitmap = true
isDither = true
color = Color.WHITE
style = Paint.Style.FILL
}
val canvas = Canvas(outputBitmap)
canvas.drawRoundRect(rectF, cornerSize.toFloat(), cornerSize.toFloat(), paint)
// draw source
paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_IN)
canvas.drawBitmap(this, borderSize.toFloat() / 2, borderSize.toFloat() / 2, paint)
return outputBitmap
}
我该如何解决?
【问题讨论】:
-
我会先做白色背景,然后在上面绘制另一个画布。