2011-02-11 145 views
2

我有一個Activity只包含一個巨大的EditText,全屏。EditText背景顏色

爲了與我的應用程序的顏色相匹配,我更改了EditText的背景顏色。但儘管它佔據了整個屏幕,但它只改變了第一行。每當我按下enter鍵,我就去一條新線,那條線獲得我想要的背景。

爲了做到這一點,我可以設置哪些屬性?我只是看不到它!

回答

3

我會將EditText換成視圖並在視圖上設置背景顏色。

+0

感謝兩個答案,這是最簡單的給予我只想要一個背景顏色。 – ferostar 2011-02-11 21:02:25

1

爲了改變那些已經配備了背景視圖,其更好的背景下提供自己的圖像,然後使用patch9進行適當調整 我希望幫助

1

@everyone:

在爲這種同樣的問題尋找解決方案時,我發現此頁面。在閱讀我認爲自己的解決方案時:「必須有更好的方式來做到這一點,而不是製作自己的風格和widgetpaders等etheretera,...

因此,我給你:1代碼解決方案的LINE !!!曳沒有

<your-widget-component-that-has-a-background-color>.getBackground().setColorFilter(Color.<your-desired-color>, PorterDuff.Mode.MULTIPLY);). 

它的工作原理是這樣的:

  • 「的getBackground()」 從組件獲取背景
  • 「setColorFilter」 將在調用過濾背景圖像本身
  • 「顏色」確定要傳遞到過濾器的顏色
  • 「PorterDuff.Mode。」設置您希望對給定顏色和獲取的背景圖像執行的操作類型。具有圖像編輯軟件知識的人(GIMP,Photoshop,...)可能會識別這些模式。基本上,每種模式對顏色如何應用於背景圖像都有一定的影響。簡單地「覆蓋」圖像的顏色,而preservind它的漸變,邊框和這樣的,用「正片疊底」

我還沒有深刻地閱讀PorterDuff類文檔,但說實話,是不是一個強大的一點代碼?

隨着親切的問候,

+0

這適用於我與按鈕(但狀態看起來很有趣,因爲顏色過濾器乘以反對藍色全息高亮或灰色默認狀態),但由於某些原因完全相同的代碼是不爲我的EditTexts做任何事情。 – 2012-09-11 17:13:46

0

如何設置EditText構件的背景色:

editText.setBackgroundColor(Color.RED);