您可以以编程方式更改图像的颜色吗?

Ren*_*n S 0 java android

我有一张白色的图片,在应用程序中,我需要用多种不同的颜色显示该图片。

有没有一种方法可以通过编程方式更改该白色图像的颜色,从而无需为每种颜色设置单独的图像?

现在我有这个:

button.setBackgroundResource(getResources().getIdentifier("image_white", "drawable", getPackageName()));
Run Code Online (Sandbox Code Playgroud)

Ari*_*Roy 5

是的,很简单。您可以使用滤色器以编程方式更改任何图像的颜色。

这是一个有关如何使用它的简单示例。

ImageView imageView = (ImageView) findViewById(R.id.imageV);
imageView.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
Run Code Online (Sandbox Code Playgroud)

图像的颜色将变为红色。您可以使用任意颜色,但是主要的魔力在于使用正确的模式PorterDuffPorterDuff.Mode.SRC_ATOP如果您对结果不满意,也可以尝试使用。