我在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