我正在關注 Kotlin Android 教程,目前正在學習 Dice Roller App 教程。為了更改影像,教程說要寫:
diceImage.setImageResource(drawableResource)
我的問題是,為什么我們不能直接更改影像?比如說:
diceImage.srcCompat = drawableResource
我認為我們不能這樣做的原因可能是 srcCompat 變數是私有的,但后來教程寫道:
diceImage.contentDescription = diceRoll.toString()
內容描述與 srcCompat 位于相同的“公共屬性”選項卡下,這可能意味著 srcCompat 不是私有的。雖然我可能錯了。
我的問題是:
為什么我們不能直接設定 srcCompat 呢?
setImageResource 函式到底在做什么?
uj5u.com熱心網友回復:
在 ImageView 內部,實際的影像是一個 Drawable。當您設定ImageResource 時,您正在設定一個int id。然后 ImageView 將通過呼叫 context.resources.getDrawable(id) 查找與 id 關聯的 Drawable 并將其保存在變數中。因此,您不能只通過屬性集來完成,因為您要存盤的值與您要設定的值的型別不同。因此,您需要一個功能。
請注意,您可以通過多種不同的方式在影像視圖上設定影像——從 Drawable、資源 id、位圖等。如果您有多種方式,則它需要是函式而不是屬性。ContextDescription 可以作業,因為您只是將其設定為 CharSequence。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/487040.html
下一篇:將一個類與另一個類鏈接
