我有一张白色的图片,在应用程序中,我需要用多种不同的颜色显示该图片。
有没有一种方法可以通过编程方式更改该白色图像的颜色,从而无需为每种颜色设置单独的图像?
现在我有这个:
button.setBackgroundResource(getResources().getIdentifier("image_white", "drawable", getPackageName()));
Run Code Online (Sandbox Code Playgroud)
是的,很简单。您可以使用滤色器以编程方式更改任何图像的颜色。
这是一个有关如何使用它的简单示例。
ImageView imageView = (ImageView) findViewById(R.id.imageV);
imageView.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
Run Code Online (Sandbox Code Playgroud)
图像的颜色将变为红色。您可以使用任意颜色,但是主要的魔力在于使用正确的模式PorterDuff。PorterDuff.Mode.SRC_ATOP如果您对结果不满意,也可以尝试使用。
| 归档时间: |
|
| 查看次数: |
2295 次 |
| 最近记录: |