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

Pol*_*ion 9 drawable android-jetpack-compose

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

val iconList = ["ic_apple","ic_banana","ic_melon"]
Run Code Online (Sandbox Code Playgroud)

ic_apple.png, ic_banana.png,ic_melon.png在我的可绘制文件夹中。

就像,java 代码中有这样的内容。

val iconList = ["ic_apple","ic_banana","ic_melon"]
Run Code Online (Sandbox Code Playgroud)

Phi*_*hov 19

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

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