相关疑难解决方法(0)

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
查看次数

如何剪辑或剪切可组合项?

在此输入图像描述

如何剪辑或剪切可组合内容以使图像、按钮或可组合项具有自定义形状?这个问题不是关于使用Modifier.clip(),更像是使用替代方法来完成任务,这些方法允许产生不可能的结果,或者当很难创建像云或方圆这样的形状时。

这是分享您的知识、问答式问题,其灵感来自 M3 BottomAppBar 或 BottomNavigation 没有切口形状,无法找到问题,并且像这个问题一样绘制Squircle形状很困难。

我们非常欢迎更多更好的剪切或自定义形状和可组合项的方法。

android android-jetpack-compose

7
推荐指数
1
解决办法
4002
查看次数