Android从资源中获取颜色列表 [英] Android getting a list of colors from resource

查看:189
本文介绍了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>

(我从另一个有问题的问题中取得此列表)

(I took this list from another question someone asked)

我想要的是获取所有颜色名称。我想要列表,这样我就可以在一个微调器中填充该批次。伪代码就是这样。

What I want to do is get all the color names. I want the list so I can then populate the lot in a spinner. The pseudo code would be like this.

List ofColours = getListOfColors(R.color);
for(int i = 0 ; i < ofColours.size() ; i ++)
{
  String colour = getResources().getColor(ofColours.get(i));
  addColourToSpinner(colour);
} 

我想要的是颜色列表。
我希望解释为所有帮助干杯

What I want is the list of colours. I hope that explains it Cheers for all the help

推荐答案

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

You can access the list of colors using reflection:

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从资源中获取颜色列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆