繁体   English   中英

在 Jetpack Compose 中以编程方式创建可绘制对象

[英]Create drawable programatticly in jetpack compose

我想在 Jetpack Compose 中使用带圆角的矩形作为线圈中的占位符。 我需要使用不同的 colors 作为占位符,具体取决于我的算法。 因此我不能使用资源中的可绘制对象。 线圈需要可绘制的占位符。 但我不明白如何在 Jetpack Compose 中以编程方式创建可绘制形状。 我很乐意提出任何建议。

您可以使用旧的视图系统创建一个 drawable,然后将它与 AndroidView 一起使用,将 drawable 集成到您的线圈构建器中作为占位符。 下面是如何创建位图并将其集成到 Compose 中的示例。 虽然这是一个位图,但您可以使用相同的技术来创建可绘制对象。 或者,您可以绘制位图并将其转换为可绘制对象:

https://proandroiddev.com/create-bitmaps-from-jetpack-composables-bdb2c95db51

解决方案:

val context = LocalContext.current
val placeholderColor = Color(0xFFD2D2D9)
Image(
    painter = rememberImagePainter(
        data = url,
        builder = {
            val drawable = ContextCompat.getDrawable(context, R.drawable.image_round_placeholder)
            drawable?.setTint(placeholderColor.toArgb())
            placeholder(drawable)
        }
    ),
    contentDescription = null,
    modifier = Modifier.size(40.dp)
)

结果:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM