如何为 imageview android 赋予色调颜色?

How to give tint color to imageview android?

我必须以编程方式更改 imageview 的色调。 我将从服务器获取一个字符串值,例如:

"color":"#fff"

我必须为图像视图设置与色调相同的颜色。

下面的代码将不起作用 =,因为 imageview 中的图像没有设置为它的背景,而是设置为 src。

imageView.getBackground().setColorFilter(Color.parseColor("#ff8800"), PorterDuff.Mode.SRC_ATOP);

此外,这些是我尝试过但没有成功。 :( 尝试 1:

ImageViewCompat.setImageTintList(imageView, ColorStateList.valueOf(Integer.parseInt("#ffffff")));

尝试 2:

imageView.setColorFilter(ContextCompat.getColor(context, Color.parseColor("#ffffff")), android.graphics.PorterDuff.Mode.SRC_IN);

尝试 3:

imageView.setColorFilter(ContextCompat.getColor(context, R.color.______), android.graphics.PorterDuff.Mode.MULTIPLY);

请注意,我不能使用 R.color.SOMETHING,因为我的文件中没有那种颜色。

提前致谢。

尝试

imageView.setColorFilter(Color.parseColor("#ffffff"), PorterDuff.Mode.SRC_IN)

Color.parseColor() 的有效颜色格式是

#RRGGBB and #AARRGGBB

我想你知道以下内容,但我还是要声明:如果“#fff”值是 CSS 十六进制颜色代码,那么它是真实代码“#FFFFFFFF”的缩写版本.如果您只传入“#fff”,它将失败,因为 Color.parseColor doesn't know about shortened 3-digit CSS color codes. See CSS HEX Colors.