我已经花了几个小时试图搞清楚: 我在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));
它仍然给我不正确的颜色。 有什么想法发生了什么?
答案 0 :(得分:0)
尝试以下方法:
color_box.setColorFilter(getResources().getColor(my_color), PorterDuff.Mode.MULTIPLY);
这假定它将从Activity
内部调用。此外,它假定my_color
是一个等于R.color.route_1
或R.color.route_2
的int。您也可以执行以下操作:
color_box.setColorFilter(getResources().getColor(R.color.route_1), PorterDuff.Mode.MULTIPLY);