2015-06-24 85 views
0

假設我在Android中有一個ShapeDrawable。不是位圖。我想用另一種顏色動態替換它中的單色(筆畫顏色)。新的期望顏色在設計時不知道,不能放入可繪製的資源中。將ShapeDrawable中的單色(黑色)替換爲Android中的另一種顏色

例如,從第1張去(其中黑色表示欲替換的顏色,和方格背景是未包括的形狀輪廓的背景):

picture 1

到圖像2,其中紅色是顏色慾:

picture 2

我可以根據需要使用的α-掩模構建形狀 - 即具有白色或黑色的顏色透明,如果necessa例如,或者使輪廓變爲綠色。最終結果中白色填充顏色必須保持白色。

是否可以通過標準的彩色濾鏡--ColorMatrixColorFilter或PorterDuffColorFilter來實現? 如果是這樣,我很難搞清楚具體的過濾器。 我假定自定義ColorFilter是不可能的。

回答

2

更改顏色在具有要設置成任意顏色的黑色邊框的具體情況,以及白色的內飾,您可以使用ADD模式PorterDuff過濾器。由於它飽和,它不會對白色區域產生任何影響,並且由於黑色爲零,所以添加顏色將有效地將所有黑色區域設置爲該顏色。

例如將其設置爲紅色:

drawable.setColorFilter(0x00ff0000, PorterDuff.Mode.ADD); 
+0

是的,這樣做,謝謝。 – Cozzamara

0

本教程可能會有幫助。根據這一點,您可以用所需的顏色替換圖像的白色部分。繪製圖標編程http://takeoffandroid.com/uncategorized/changing-color-of-drawable-icon-programmatically/

相關問題