2017-02-18 96 views
0

我有一个白色的图像,在应用程序中,我需要以许多不同的颜色显示图像。你能以编程方式更改图像的颜色吗?

有没有办法以编程方式更改该白色图像的颜色,以便我不需要为每种颜色都有单独的图像?

现在我有这样的:

button.setBackgroundResource(getResources().getIdentifier("image_white", "drawable", getPackageName())); 
+0

您是否尝试添加一些彩色滤光片?看看这个:http://stackoverflow.com/questions/8193447/i-want-to-add-a-color-filter-to-the-imageview – JonZarate

+0

是一个可绘制的资源? –

+0

是一个纯色的图像? –

回答

3

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

下面是一个关于如何使用它的简单示例。

ImageView imageView = (ImageView) findViewById(R.id.imageV); 
imageView.setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN); 

图像的颜色将变为红色。你可以使用任何你选择的颜色,但主要的魔术在于使用PorterDuff的适当模式。如果您对结果不满意,您还可以试用PorterDuff.Mode.SRC_ATOP

+0

请考虑upvoting如果它可以帮助你的答案。 –

0

你可以,如果你使用的材料设计图标改变颜色。

android:backgroundTint="@color/yourColor" android:tint="@color/yourColor"

Here you can find material design icons

否则,您可以使用自定义xml资源文件来更改背景,但我认为我不适合您的需要。

0

您可以使用:

Drawable myDrawable = ContextCompat.getDrawable(context,R.drawable.drawable_id); 
myDrawable.setTint(ContextCompat.getColor(context, R.color.color_id); 

对不起,我的英语水平。 我希望这是帮助。

相关问题