使用名称中的变量(R.color.name + variable)从values / colors.xml中检索颜色

时间:2012-06-09 19:29:44

标签: android colors android-resources

我的colors.xml中有一个颜色列表,它们都有tColor1,tColor2,tColor3等格式的名称,我想在一个for-to-do循环中使用循环整数作为一部分来检索它们。名字。所以我有

for (int i = 0; i < numTrails; i++) {
    newColors[i] = R.color.tColor + i;
}

现在我明白我不能像那样使用R类,但是我可以使用其他什么方法来获取颜色?

2 个答案:

答案 0 :(得分:6)

你可以做这样的事情,假设你的newColors数组是一个带有资源ID的int数组?

String colorId = "tColor";
Resources resources = getResources();
for (int i = 0; i < numTrails; i++) {
    newColors[i] = resources.getIdentifier(colorId+i, "color", getPackageName());    
}

如果是您的颜色数组,请在该结果上使用getResources().getColor(...)

String colorId = "tColor";
Resources resources = getResources();
for (int i = 0; i < numTrails; i++) {
    int resId = resources.getIdentifier(colorId+i, "color", getPackageName());
    newColors[i] = resources.getColor(resId);
}

答案 1 :(得分:0)