我在color.xml中定義了以下顏色。顏色名稱是BC1,BC2,BC2等。定義了15個這樣的顏色名稱。最後一種顏色是BC15。如何使用R.color使用變量ID讀取顏色
<color name="BC1">#39DD02</color>
<color name="BC2">#FEA200</color>
<color name="BC3">#21C3F3</color>
........
<color name="BC15">#21F3F3</color>
在我的代碼,我想用下面的代碼,使色彩:
ContextCompat.getColor(getContext(), R.color.BC1)
上面的代碼工作正常。現在,我想在循環中使用這些代碼,以便我可以根據計數器值選擇顏色,以便我可以逐個讀取顏色,如下面的psedo代碼所示。
for(colorID=1;colorID<=15;colorID++)
{
int businessColor=ContextCompat.getColor(getContext(),R.color.<colorID>)
//Do something with the value inside businessColor
}
在上面的代碼,我怎麼使用colorID計數器由一個
我試着寫下面看顏色之一。 (假設我可以從陣列獲取hexdecimal值)
ContextCompat.getColor(getContext(), Color.parseColor("#636161"))
但上面的代碼顯示我錯誤「預期型彩色的資源」。
您可以使用['getIdentifier'從'Resources'(HTTPS ://developer.android.com/reference/android/content/res/Resources.html#getIdentifier(java.lang.String,java.lang.String,java.lang.String))來獲取字符串的標識符。像getResources()。getIdentifier(NameOfYourColor,「color」,getPackageName())''應該可以獲得'getColor'的id。 – dylansturg
在'values/arrays.xml'中定義一個數組並迭代該數組 –
關於'getIdentifier',請務必在文檔中閱讀此註釋 - 「注意:不鼓勵使用此函數。通過標識符而不是名稱來檢索資源。「 – iagreen