2012-07-14 166 views
10

我想知道如何更改的EditText視圖的邊框顏色android的別的東西......更改的EditText邊框顏色

這是我的EditText視圖:

<EditText 
    android: 
    android:id="@+id/codeEditText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_below="@+id/btnEqual" 
    android:layout_marginTop="20dp" 
    android:ems="10" 
    android:gravity="top|left" 
    android:inputType="textMultiLine|textNoSuggestions" 
    android:scrollbars="vertical" 
    android:singleLine="false" > 

感謝名單的前期。

回答

17

您必須創建/修改自己的NinePatch圖像來替換默認的圖像,並將其用作EditText的背景。如果您查看您的SDK文件夾,在您的平臺下,然後res/drawable,您應該找到EditText焦點狀態的NinePatch圖像。如果這就是你想要改變的一切,那麼你可以將它拉到Photoshop中,或者任何你最喜歡的圖像編輯軟件,並將橙色改爲你選擇的顏色。然後保存到您繪製的文件夾,並建立一個新的StateListDrawable,例如像下面的:

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    > 
    <item 
     android:state_pressed="true" 
     android:drawable="@android:drawable/edittext_pressed" 
     /> <!-- pressed -->  
    <item 
     android:state_focused="true" 
     android:drawable="@drawable/edittext_focused_blue" 
     /> <!-- focused -->  
    <item 
     android:drawable="@android:drawable/edittext_normal" 
     /> <!-- default --> 
</selector> 

我不知道隨便用於爲EditText上的默認NinePatches實際名稱,因此這些必要時更換,但這裏的關鍵是隻使用@android:drawable圖片作爲您未修改的圖片(或者您可以將它們複製到項目的可繪製文件夾中),然後使用修改後的可繪製對象用於聚焦狀態。

然後,您可以設置此StateListDrawable爲背景爲您的TextView,像這樣:

<TextView 
    android:background="@drawable/edittext_modified_states" 

在某些操作系統版本,您可能還需要正常未修改的狀態的照片複製到應用程序可繪製文件夾來獲得這項工作。因此,在您的應用程序的可繪製文件夾中,您具有修改後的焦點狀態圖片以及未修改的原始其他狀態圖片。

+0

+ 1,是有** edittxview.setError任何狀態( 「錯誤」); **像機器人:state_pressed = 「真」(機器人:state_seterror = 「真」)!我只想在setError驗證警報被觸發時更改邊框顏色! – 2014-04-21 06:35:28

+0

這是我正在尋找[change-background-of-edittexts-error-message](http://stackoverflow.com/questions/14127710/change-background-of-edittexts-error-message) – 2014-04-21 06:44:27

0

你必須重寫onDraw函數來完成它。你將能夠在一行中做到這一點。 下面是在幻​​燈片上的一個很好的例子。

+1

這將是在edittext的邊框上繪製一個矩形。 OP想要改變焦點上的顏色。 – 2012-07-14 17:38:31

7

有一個偉大的Widget生成器可以爲你做所有的工作,它對我很好。

你只需要選擇你的顏色和你想要的部件(例如EditText),那麼你將在可繪製目錄中得到一個xml文件,你應該將這個xml設置爲你的Widget的背景和完成!

http://android-holo-colors.com/