相关疑难解决方法(0)

Android画布:在图像上绘制透明圆圈

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

请帮我在Android SDK上实现相同的效果.

android image android-canvas

49
推荐指数
3
解决办法
4万
查看次数

Jetpack Compose 将 PorterDuffMode 应用于图像

基于本页中的图像和 PorterDuffModes

我下载了图像,最初即使它们是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)

android canvas porter-duff android-jetpack-compose

7
推荐指数
2
解决办法
5091
查看次数