相关疑难解决方法(0)

如何在 Jetpack Compose 中将浮动操作按钮定位到左侧或开始

我想在jetpack compose中创建动画bottomAppBar(类似于图像),但是jetpack compose中的Fab位置只是中心或末端,我需要至少将FAB移动到左侧,我的代码是: 在此输入图像描述

@Composable
fun BottomBarSample() {
    Scaffold(
        floatingActionButton = {
            FloatingActionButton(
                shape = CircleShape,
                onClick = {},
            ) {
                Icon(imageVector = Icons.Filled.Add, contentDescription = "icon")
            }
        },
        floatingActionButtonPosition = FabPosition.End,
        isFloatingActionButtonDocked = true,
        bottomBar = {
            BottomAppBar(backgroundColor = Color.Cyan, cutoutShape = CircleShape) {

            }
        }
    
    ){
        //body
    }
}
Run Code Online (Sandbox Code Playgroud)

android floating-action-button android-layout-direction android-jetpack-compose

10
推荐指数
1
解决办法
6024
查看次数

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

如何在compose中为盒子制作彩虹边框动画?

如何为撰写中的框制作彩虹边框动画,我看到的所有示例都是针对圆形的,并且它们使用旋转和绘制,但我真正需要的是为撰写中的框制作相同的动画。

\n

谢谢

\n

使用旋转但它没有 \xc2\xb4t 工作

\n

android-animation kotlin android-jetpack-compose android-jetpack-compose-canvas android-jetpack-compose-animation

6
推荐指数
1
解决办法
1337
查看次数

在 Jetpack Compose 中从另一种形状切割出一种形状

我对在 Compose 中制作此视图有疑问,但我不知道如何实现它。

看法

我当前的代码如下所示:

Box(
    modifier = Modifier
        .fillMaxSize()
        .height(300.dp)
) {
    Canvas(modifier = Modifier.matchParentSize()) {
        drawRoundRect(
            color = Color.Yellow,
            cornerRadius = CornerRadius(16.dp.toPx(), 16.dp.toPx())
        )
        drawRoundRect(
            color = Color.White,
            topLeft = Offset(
                x = size.width / 5,
                y = size.height - 60.dp.toPx()
            ),
            size = Size((size.width / 5) * 3, 50.dp.toPx() * 2),
            cornerRadius = CornerRadius(24.dp.toPx(), 24.dp.toPx()),
        )
    }

    Box(
        modifier = Modifier
            .fillMaxSize()
            .padding(16.dp)
    ) {
        Text(
            text = "Test",
            modifier = Modifier.align(Alignment.BottomCenter)
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

我的看法

kotlin android-jetpack-compose android-jetpack-compose-canvas

4
推荐指数
1
解决办法
2769
查看次数

Jetpack Compose Canvas drawText 颜色混合?

假设我在下面编写了以下代码。

背景洋红色圆圈,顶部有默认黑色的文本。

在此输入图像描述

当文本颜色位于圆圈上方时,我想将其混合为白色。

Canvas(
    modifier = Modifier.size(256.dp),
    onDraw = {
        drawCircle(
            color = Color.Magenta,
            radius = 50f,
            center = Offset(
                x = size.width / 2,
                y = size.height  / 2),
        )
        val textSize = textMeasurer.measure(text = AnnotatedString("A"))
        drawText(
            textMeasurer = textMeasurer,
            text = "A",
            style = TextStyle(
                color = Color.Black,
                fontSize = 14.sp
            ),
            topLeft = Offset(
                x = size.width / 2 - 100f - (textSize.size.width / 2),
                y = size.height  / 2 - (textSize.size.height / 2)
            )
        )
        drawText( …
Run Code Online (Sandbox Code Playgroud)

android android-canvas android-jetpack-compose android-jetpack-compose-canvas

3
推荐指数
1
解决办法
1587
查看次数

Jetpack Compose:如何剪出卡片形状?

我想在相机预览上方创建一个半透明图层,如下所示:

在此输入图像描述

我在我的应用程序中完成了相机预览,我想要的只是在预览上有一个半透明的图层,带有剪裁的卡片形状,如图所示(带有圆角)。

所以:全屏相机预览,上面有一个全屏半透明覆盖层,其中有一个卡片状的孔被切掉

我怎样才能做到这一点?

android-jetpack-compose

2
推荐指数
1
解决办法
1246
查看次数