如何通过字符串获取可绘制资源?

How can I get drawable resource by string?

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

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)

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

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