Java 在Android应用程序中设置视图颜色

Java 在Android应用程序中设置视图颜色,java,android,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> 但是,当我设置颜色时: color

我已经花了几个小时试图弄明白: 我在colors.xml中定义了颜色:

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

    <color name="route_1">#C781D9</color>
    <color name="route_2">#015486</color>
....
</resources>
但是,当我设置颜色时:

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));
它仍然给我不正确的颜色。 有什么想法吗?

试试以下方法:

color_box.setColorFilter(getResources().getColor(my_color), PorterDuff.Mode.MULTIPLY);
这假设它将从活动内部调用。此外,它还假设my_color是一个int,等于R.color.route_1或R.color.route_2。您还可以执行以下操作:

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