2011-09-10 138 views
2

我有一個png文件,外面透明,用作我UI中某處的圖標圖像;我希望用戶能夠在運行時爲其指定不同的顏色(如左下圖所示,假設我有android圖標);或不同的「背景」圖像(下面的圖片,假設圖標是一個組合一個圓形和一個三角形的形狀)。我讀了post,它使用ColorFilter將所有白色像素設置爲代碼中的另一種顏色;但它不允許我改變圖標的​​「背景」。我想我可能可以用ClipDrawable做到這一點,但我不知道如何。Android可繪製資源:動態更改圖標顏色/「背景」?

A: Suppose I have the android icon B: Suppose the icon is a shape combining a circle and a triangle)

+0

對不起,也許我不明白。但爲什麼解決方案不僅僅是爲佈局設置背景顏色,將透明區域包含圖標圖像? –

+0

@teepee,我認爲那是因爲我不知道如何去做你剛纔陳述的內容。 – mobileTofu

回答

1

如果使用ImageView,還可以設置圖像(android:src),而且背景的圖像(android:background)源。因此,如果您的圖像具有透明區域或具有Alpha通道的區域,則背景顏色將用於這些像素。

然後可以動態更改背景顏色。你能用這種方法嗎?

imageView.setBackgroundColor(0x00FF0000); // red 
+0

感謝您的提示。你可以分享一部分代碼,以便如何設置帶有alpha通道的.png到imageView?我想我要麼以錯誤的方式設置它,要麼以錯誤的方式創建了.png,但背景從未透露過。 – mobileTofu

+0

我簡單地在XML佈局中定義了png圖像:。在photoshop或其他編輯器中檢查你的PNG圖像,如果透明色真的是透明的 - 你可以將它與android icon.png –

+0

進行比較我認爲我也嘗試了你剛纔所說的,所得到的圖像只是一個紅色框,沒有被PNG剪輯。是的,我檢查,我的PNG有一個透明的背景。 – mobileTofu