繁体   English   中英

Android jetpack compose - 可绘制颜色

[英]Android jetpack compose - Drawable colors

我有以下问题。 我在使用 Jetpack compose 构建的项目中添加了一些矢量可绘制图像。 我通过设置覆盖drawable的颜色

android:fillColor="?colorPrimary"

但是,以前的解决方案,即使它适用于通常的 Android 项目,但在 Jetpack compose 上工作时却不是。

当然,我已经用我的颜色/错字/形状初始化了一个材质主题。

有什么建议吗?

此致!

我遇到过类似的问题,其中 compose 不能很好地处理属性。 它更喜欢通过 colorResource(R.color.colorName) 访问。

您可能正在寻找的是以下任一实现:

Icon(
 Icons.Filled, 
 "contentDescription",
 tint = MaterialTheme.colors.secondary
)

Image(
    painter = painterResource(R.drawable.resourceName), 
    contentDescription = "contentDescription", 
    colorFilter = ColorFilter.tint(Color.myColor)
)

更新:

我实际上发现了与字体属性类似的东西。 您可能想尝试这样的事情:

fun getFontFromAttribute(resId: Int, context: Context): Typeface? =
    context.obtainStyledAttributes(R.style.MYSTYLE, intArrayOf(resId))
        .use { array ->
            val resource = array.getResourceId(array.getIndex(0), 0)
            if (resource == 0) {
                null
            } else {
                ResourcesCompat.getFont(context, resource) ?: Typeface.SANS_SERIF
            }
        }

暂无
暂无

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

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