Android ListView背景颜色变化

时间:2013-07-19 14:38:22

标签: android listview background

我有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);

2 个答案:

答案 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