在Android App中设置VIew颜色

时间:2014-06-18 01:14:26

标签: java android

我已经花了几个小时试图搞清楚: 我在colors.xml中定义了颜色:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <color name="route_1">#C781D9</color>
    <color name="route_2">#015486</color>
....
</resources>

但是当我尝试设置ImageView或Text的颜色时,这些颜色看起来太暗而且难以辨别。

color_box.setColorFilter(my_color, PorterDuff.Mode.MULTIPLY); 

然而,当我设置颜色时:

color_box.setColorFilter(Color.BLUE);

它运作得很好。我已经尝试过了:

int r = (my_color >> 16) & 0xFF;
int g = (my_color >> 8) & 0xFF;
int b = (my_color >> 0) & 0xFF;

color_box.setColorFilter(Color.rgb(r, g, b));

它仍然给我不正确的颜色。 有什么想法发生了什么?

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

color_box.setColorFilter(getResources().getColor(my_color), PorterDuff.Mode.MULTIPLY);

这假定它将从Activity内部调用。此外,它假定my_color是一个等于R.color.route_1R.color.route_2的int。您也可以执行以下操作:

color_box.setColorFilter(getResources().getColor(R.color.route_1), PorterDuff.Mode.MULTIPLY);