2017-02-18 57 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); 

對不起,我的英語水平。 我希望這是幫助。

相關問題