2014-09-04 6 views
8

Ich muss EditText mit Basislinie in unten gezeigt Bild und es wird zu einer anderen Farbe ändern, wenn es den Fokus erhält.!EditText Hintergrund Basislinie Farbe ändert sich basierend auf seinen Fokus in Android

enter image description here

ich die folgenden verwende.

<EditText  
    android:id="@+id/mobilenumber" 
    android:drawableLeft="@drawable/mobile" 
    android:drawablePadding="15dp" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:inputType="number" 
    android:background="@drawable/edt_bg" 
    android:singleLine="true" 
    android:textColorHint="#FFFFFF" 
    android:hint="@string/mobilenumber" 
    android:layout_marginTop="20dp" 
    android:layout_gravity="center" 
    android:padding="5dp" 
    android:imeOptions="actionNext" 
    android:maxLength="10" 
    android:textColor="#ffffff" 
    android:textCursorDrawable="@null" 

    /> 

Also, bitte führe mich, wie man damit umgeht.

+0

lesen über StateListDrawable Tag in xml – pskink

+0

Können Sie eine klare Vorstellung davon? – koti

Antwort

3

Probieren Sie Holo Color Generator für benutzerdefinierte Farben.

Android Holo Colors

Sie können Selector erstellen und legen Sie es als Hintergrund der EditText

res/ziehbar/edit_text.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_window_focused="false" 
     android:state_enabled="true" 
     android:drawable="@drawable/textfield_default" /> 

    <item 
     android:state_window_focused="false" 
     android:state_enabled="false" 
     android:drawable="@drawable/textfield_disabled" /> 

    <item 
     android:state_pressed="true" 
     android:drawable="@drawable/textfield_pressed" /> 

    <item 
     android:state_enabled="true" 
     android:state_focused="true" 
     android:drawable="@drawable/textfield_selected" /> 

    <item 
     android:state_enabled="true" 
     android:drawable="@drawable/textfield_default" /> 

    <item 
     android:state_focused="true" 
     android:drawable="@drawable/textfield_disabled_selected" /> 

    <item 
     android:drawable="@drawable/textfield_disabled" /> 

</selector> 

Layout:

<EditText  
    android:id="@+id/mobilenumber" 
    .... 
    android:background="@drawable/edit_text" /> 
+0

Schöne Antwort. Ihr XML-Code verfehlt jedoch Tag. Ansonsten - danke, Bruder! –

+1

@AlexeyFShevelyov Antwort aktualisiert. Vielen Dank. :) – SilentKiller

25

Sie können Thema für EditText

<style name="EditTextTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorControlNormal">@color/primary</item> 
    <item name="colorControlActivated">@color/primary</item> 
    <item name="colorControlHighlight">@color/primary</item> 
</style> 

hinzufügen Und Sie können in EditText als

<EditText 
    android:id="@+id/edtCode" 
    android:layout_width="match_parent" 
    android:layout_height="40dp" 
    ....................... 
    android:theme="@style/EditTextTheme"> 

</EditText> 
+2

Genau was benötigt wird. Funktioniert perfekt. Vielen Dank!!! – DmitryKanunnikoff

0

Verwendung dieses in Ihrem editText Stil

<item name="backgroundTint">@color/focus_tint_list</item> 

focus_tint_list.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:color="?attr/colorAccent"/> 

    <item android:state_focused="false" android:color="#999999"/> 

</selector> 
verwenden
Verwandte Themen