我有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 :(得分: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)));
注意使颜色更高可以使颜色变亮,较低的数字会使颜色变暗。
答案 1 :(得分:0)
如果您想要一个功能来计算更暗或更亮的颜色,请参阅Brighter/Darker function。是在javascript但很容易翻译成java