大约30-40种不同颜色用于我的项目。我将这些颜色的十六进制代码保存在一个数组中,并在列表视图中显示它们。目前的列表查看颜色是随机列出的。如何在Java中将颜色代码从浅到深排序
但是,我想根据它们从白色到黑色的接近度对这些颜色进行排序。
当前随机列表视图链接:
http://tinypic.com/view.php?pic=33ufll3&s=8#.VAiClfmSyXY
我的代码:
public void work(String sub){
ArrayList<String> colorCodes = new ArrayList<String>();
ArrayList<String> colorNames = new ArrayList<String>();
ArrayList<Integer> colors = new ArrayList<Integer>();
Field [] fields = R.color.class.getDeclaredFields();
String colorCode;
String colorName;
int color;
final CustomList adapter2 = new CustomList(MainActivity.this,
add.colorArray);
adapter2.clear();
int number=0;
try
{
for(int i=0; i<fields.length; i++)
{
getResources().getColor(fields[i].getInt(null));
colorName = fields[i].getName();
colorCode = getResources().getString(fields[i].getInt(null));
color = fields[i].getInt(null);
System.out.println("COLOR:" +String.valueOf(color));
if(fields[i].getName().subSequence(0, 3).equals(sub)){
if(!colorCodes.contains(colorCode))
{
colorCodes.add(colorCode);
colorNames.add(colorName);
colors.add(color);
}
}
}
}
catch (Exception ex){}
number=0;
for(int i=0;i<colorCodes.size();i++){
add.adding(colorCodes.get(i), number+1,colors.get(i));
number++;
}
add.doCustom(adapter2, (ListView) findViewById(R.id.listView1));
}
现在什么是exect问题?你卡在哪里?从什么时候开始,RGB代码是由8个十六进制数字组成的? – kai 2014-09-05 06:54:16
所以如果你有一个代码列表,你想要他们排序,是吗?例如,如果您有000000,999999,FFFFFF,333333 ..,您希望它们在[FFFFFF,999999,333333,000000]的顺序列表中? – coffeeaddict 2014-09-05 07:00:22
是的,我已经有列表颜色代码,我如何将它们排序000000到ffffff? f = 15对不对?它会工作,如果我分类00 00 00 00 00 00到151515151515? – 2014-09-05 07:06:51