我有一个白色的图像,在应用程序中,我需要以许多不同的颜色显示图像。你能以编程方式更改图像的颜色吗?
有没有办法以编程方式更改该白色图像的颜色,以便我不需要为每种颜色都有单独的图像?
现在我有这样的:
button.setBackgroundResource(getResources().getIdentifier("image_white", "drawable", getPackageName()));
我有一个白色的图像,在应用程序中,我需要以许多不同的颜色显示图像。你能以编程方式更改图像的颜色吗?
有没有办法以编程方式更改该白色图像的颜色,以便我不需要为每种颜色都有单独的图像?
现在我有这样的:
button.setBackgroundResource(getResources().getIdentifier("image_white", "drawable", getPackageName()));
是的,它很简单。您可以使用颜色过滤器以编程方式更改任何图像的颜色。
下面是一个关于如何使用它的简单示例。
ImageView imageView = (ImageView) findViewById(R.id.imageV);
imageView.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);
图像的颜色将变为红色。你可以使用任何你选择的颜色,但主要的魔术在于使用PorterDuff
的适当模式。如果您对结果不满意,您还可以试用PorterDuff.Mode.SRC_ATOP
。
请考虑upvoting如果它可以帮助你的答案。 –
你可以,如果你使用的材料设计图标改变颜色。
android:backgroundTint="@color/yourColor" android:tint="@color/yourColor"
Here you can find material design icons。
否则,您可以使用自定义xml资源文件来更改背景,但我认为我不适合您的需要。
您可以使用:
Drawable myDrawable = ContextCompat.getDrawable(context,R.drawable.drawable_id);
myDrawable.setTint(ContextCompat.getColor(context, R.color.color_id);
对不起,我的英语水平。 我希望这是帮助。
您是否尝试添加一些彩色滤光片?看看这个:http://stackoverflow.com/questions/8193447/i-want-to-add-a-color-filter-to-the-imageview – JonZarate
是一个可绘制的资源? –
是一个纯色的图像? –