我正在遍历Google的Android代码实验室,构建了一个骰子滚轴应用程序,并对我的函数getRandomDiceImage()的返回类型如何为Int类型感到困惑,但似乎该函数正在返回ImageView。
我理解获取随机整数并将其存储在randomInt中,并且获得了类似于标准C语言的switch语句。但是,将该randomInt转换为R.drawable.image会让我失望。
private fun getRandomDiceImage(): Int {
val randomInt = Random().nextInt(6) + 1
return when (randomInt) {
1 -> R.drawable.dice_1
2 -> R.drawable.dice_2
3 -> R.drawable.dice_3
4 -> R.drawable.dice_4
5 -> R.drawable.dice_5
else -> R.drawable.dice_6
}
}
private fun rollDice() {
diceImage.setImageResource(getRandomDiceImage())
diceImage2.setImageResource(getRandomDiceImage())
}
最佳答案
不,它返回的是images resource identifier
,即@DrawableRes int
,等等。
窍门是R.drawable.dice_1
期望setImageResource(
值(用int
注释以确保它实际上是可绘制资源),基于ImageView将加载可绘制标识符所引用的位图资源。
关于android - 对返回when语句感到困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56566965/