【问题标题】:How can I get drawable resource by string?如何通过字符串获取可绘制资源?
【发布时间】:2021-11-22 08:14:58
【问题描述】:

我将它们的名字命名为 String,它位于 drawable 文件夹中。如何访问可绘制文件夹并传递可绘制资源以更改图标视图。

val iconList = ["ic_apple","ic_banana","ic_melon"]

ic_apple.pngic_banana.pngic_melon.png 在我的可绘制文件夹中。

喜欢, java的代码有这个。

String name = "your_drawable";
int id = getResources().getIdentifier(name, "drawable", getPackageName());
Drawable drawable = getResources().getDrawable(id);
        
view.setBackground(drawable)

【问题讨论】:

  • 您的问题不清楚。 “可绘制文件夹中的字符串”是什么意思?字符串存储在值资源中,而不是可绘制对象中。 “图标视图”是什么意思?请使用更准确的信息更新您的帖子。
  • @Johann 更新帖子。请检查一下。
  • 这是你要找的东西吗:stackoverflow.com/a/4428288/753632
  • @Johann 是的,这就是我要找的。​​span>

标签: drawable android-jetpack-compose


【解决方案1】:

您可以使用LocalContext 获取当前上下文,然后使用与基于视图的 Android 中相同的方法:

val context = LocalContext.current
val drawableId = remember(name) {
    context.resources.getIdentifier(
        name,
        "drawable",
        context.packageName
    )
}
Image(
    painterResource(id = drawableId),
    contentDescription = "..."
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2011-02-19
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多