Kotlin语法:如何在循环中定义资源

问题描述 投票:0回答:1

我想在一系列位图中设置一系列位图。

var wallFaces: Array<Bitmap>? = null

我可以做到:(有效)

init {
    wallFaces?.set(0,BitmapFactory.decodeResource(context.resources, R.drawable.brick_wall_face_0))
    wallFaces?.set(1,BitmapFactory.decodeResource(context.resources, R.drawable.brick_wall_face_1))
    etc...
}

但是为了获得更大的灵活性,我想做这样的事情:

init {
    for(i in 0..1) {
        wallFaces?.set(i,BitmapFactory.decodeResource(context.resources, R.drawable.brick_wall_face_<i>))
    }
}

我找不到正确的语法以使其合规。有什么想法吗?

arrays kotlin syntax
1个回答
0
投票
for(i in 0..1) {
    val idString = "brick_wall_face_$i"
    val drawableId = context.resources.getIdentifier(idString, "drawable", context.packageName)
    wallFaces?.set(i, BitmapFactory.decodeResource(context.resources, drawableId))
}
© www.soinside.com 2019 - 2024. All rights reserved.