我正在创建一个像素狩猎游戏.所以我的活动显示了一个ImageView.我想创建一个提示"告诉我对象在哪里".为此,我需要模糊整个图像,除了围绕对象所在点的圆圈.而不是模糊,我可以显示一个只是半透明的黑色背景.在Canvas上绘制半透明矩形没有问题.但我不知道如何从中裁剪透明圆圈.结果应如下所示:

请帮我在Android SDK上实现相同的效果.
我下载了图像,最初即使它们是png,它们也有浅灰色和深灰色的矩形,这些矩形不透明并删除了它们。
并使用此示例代码进行检查,将原始代码中的可绘制对象替换为下面的可绘制对象,我得到结果
看起来它可以与 Android View 一起使用,但是当我使用 Jetpack Canvas 作为
androidx.compose.foundation.Canvas(modifier = Modifier.size(500.dp),
onDraw = {
drawImage(imageBitmapDst)
drawImage(imageBitmapSrc, blendMode = BlendMode.SrcIn)
})
Run Code Online (Sandbox Code Playgroud)
BlendMode.SrcIn 在黑色矩形上绘制蓝色矩形,其他模式也不会返回正确的结果。BlendMode.SrcOut 返回黑屏。
并使用 2 张图像堆叠在一起Box
val imageBitmapSrc: ImageBitmap = imageResource(id = R.drawable.c_src)
val imageBitmapDst: ImageBitmap = imageResource(id = R.drawable.c_dst)
Box {
Image(bitmap = imageBitmapSrc)
Image(
bitmap = imageBitmapDst,
colorFilter = ColorFilter(color = Color.Unspecified, blendMode = BlendMode.SrcOut)
)
}
Run Code Online (Sandbox Code Playgroud)
仅蓝色 src 矩形可见。
也尝试过Painter,但也无法使其工作
val imageBitmapSrc: ImageBitmap = imageResource(id = R.drawable.c_src) …Run Code Online (Sandbox Code Playgroud)