我正在使用以下代碼將影像從drawables檔案夾加載到檔案夾中。buttons
Icon(
painter=painterResource(R.drawable.imageName),
modifier=Modifier.size(30.dp),
contentDescription="drawable icons",
tint=Color.Unspecified
)
但我想在回圈中使用該代碼,string array例如
val imageNames = arrayOf("image1", "image2")
for (k in imageNames.indices) {
Icon(
painter=painterResource(R.drawable.imageNames[k]),
modifier=Modifier.size(30.dp),
contentDescription="drawable icons",
tint=Color.Unspecified
)
}
uj5u.com熱心網友回復:
Drawables 應該是可繪制的價值資源,而不是String您的情況
val imageNames = arrayOf("image1", "image2")
應該
val imageRes = arrayOf(R.drawable.ic_1, R.drawable.ic_2)
imageRes.forEach { res ->
Icon(
painter=painterResource(res),
modifier=Modifier.size(30.dp),
contentDescription="drawable icons",
tint=Color.Unspecified
)
}
但是,如果您想將字串值映射到相應image1的值,請考慮這一點,image2Drawables
@Composable
fun MyScreen() {
val imageNames = arrayOf("image1", "image2")
imageNames.forEach { imageString ->
val imageRes = imageString.mapToMyImageResource()
Icon(
painter=painterResource(imageRes),
modifier=Modifier.size(30.dp),
contentDescription="drawable icons",
tint=Color.Unspecified
)
}
}
@DrawableRes
fun String.mapToMyImageResource() : Int =
when (this) {
"image1" -> {
R.drawable.ic_1
}
"image2" -> {
R.drawable.ic_2
}
else -> {
R.drawable.ic_default
}
}
uj5u.com熱心網友回復:
@Composable
fun ImageList() {
//declare your list as resource types
val imagesNames = arrayOf(R.drawable.image1,R.drawable.image2)
Column {
imageNames.forEach { image ->
Icon(
painter=painterResource(image),
modifier=Modifier.size(30.dp),
contentDescription="drawable icons",
tint=Color.Unspecified
)
}
}
}
希望對您有所幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/527341.html
