Android从资源中获取颜色列表

我有一个颜色清单

<?xml version="1.0" encoding="utf-8"?>

<resources>

<color name="white">#FFFFFF</color>

<color name="yellow">#FFFF00</color>

<color name="fuchsia">#FF00FF</color>

<color name="red">#FF0000</color>

<color name="silver">#C0C0C0</color>

<color name="gray">#808080</color>

<color name="olive">#808000</color>

<color name="purple">#800080</color>

<color name="maroon">#800000</color>

<color name="aqua">#00FFFF</color>

<color name="lime">#00FF00</color>

<color name="teal">#008080</color>

<color name="green">#008000</color>

<color name="blue">#0000FF</color>

<color name="navy">#000080</color>

<color name="black">#000000</color>

</resources>

(我从别人问的另一个问题中取出了此列表)

我要做的是获取所有颜色名称。我需要列表,以便随后可以在微调器中填充该列表。伪代码将像这样。

List ofColours = getListOfColors(R.color);

for(int i = 0 ; i < ofColours.size() ; i ++)

{

String colour = getResources().getColor(ofColours.get(i));

addColourToSpinner(colour);

}

我想要的是颜色列表。我希望这可以为所有帮助加油打气

回答:

您可以使用反射来访问颜色列表:

Field[] fields = Class.forName(getPackageName()+".R$color").getDeclaredFields();

for(Field field : fields) {

String colorName = field.getName();

int colorId = field.getInt(null);

int color = getResources().getColor(colorId);

Log.i("test", colorName + " => " + colorId + " => " + color);

}

以上是 Android从资源中获取颜色列表 的全部内容, 来源链接: utcz.com/qa/418625.html

回到顶部