2013-07-19 180 views
0

我有ListView,我想将当前活动的行更改为不同的颜色。Android ListView背景颜色变化

目前我有这样的:

rowView.setBackgroundColor(0xFF0000FF); // make blue bg 

而且它按预期工作。

然而,有一个“哲学”问题 - 因为我使用所有的默认配色方案,我应该使用什么颜色?蓝色是一个不好的例子,因为android方案可能是黑暗的,光线的或完全自定义的。

我记得的东西可能是反色,视觉上相似的颜色(比如20%较暗)或者可能是相同的颜色,但有一些效果。

在Android必须努力2.2+

编辑:

解决方案我在找的是更多这样的事情:

int x = this.getResources().getColor(android.R.color.holo_blue_bright); 
listViewItem.setBackgroundColor(x); 

回答

0

如果你想有一个函数来计算颜色变暗或变亮见Brighter/Darker function。在JavaScript中,但很容易转换为Java

+0

谢谢,这很有用 – Nick

+0

乐意提供帮助,但是如果您认为这很有用,感谢的最佳方式是upvote和or accept – ramaral

1

如果你知道这是一种颜色,那么你可以尝试

ColorDrawable buttonColor = (ColorDrawable) button.getBackground(); 

如果你使用的是Android 3.0+,你可以走出的资源ID颜色。

int colorId = buttonColor.getColor(); 

然后,请执行下列操作:

int red = Color.red(colorId); 
    int blue = Color.blue(colorId); 
    int green = Color.green(colorId); 
    double percent = 400; 
    button.setBackgroundColor(Color.rgb((int)(red * percent/100), 
     (int)(blue * percent/100),(int)(green * percent/100))); 

注意在进行颜色更高亮肤色,和一个较小的数字变暗的颜色。

+0

问题是,10%轻/黑是黑客。使用纯色更好,但我不知道颜色,不知道我应该使用什么颜色?如果我使用蓝色,如果整个ListView是蓝色的,这将是错误的。 – Nick