setColorFilter不使用资源颜色

时间:2015-11-06 23:27:34

标签: android

如果我像这样使用setColorFilter,它可以使用所选颜色绘制我的图像:

int color = Color.parseColor("#FF0000"); 
viewHolder.Icon.setColorFilter(color);

但如果我尝试使用资源颜色,它什么都不做:

viewHolder.Icon.setColorFilter(R.color.colorPrimary);

资源定义如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#FF5722</color>
</resources>

3 个答案:

答案 0 :(得分:7)

答案标记为&#34;右&#34;使用不推荐使用的getColor()方法。 这就是为什么这里是最新答案:

int color = ResourcesCompat.getColor(getResources(), R.color.my_color, null);

答案 1 :(得分:4)

试试这个

int actionBarBackground = getResources().getColor(R.color.actionBarBackground);

并在方法setColorFilter中设置actionBarBackground,即所有

答案 2 :(得分:0)

请添加PorterDuff.Mode.MULTIPLY请参阅以下示例

viewHolder.Icon.getDrawable()。setColorFilter(getResources()。getColor(R.color.blue),PorterDuff.Mode.MULTIPLY);