EditText背景基线颜色根据其焦点更改android

问题描述:

我需要设计EditText,其基线显示在下面的图像中,它会在接收焦点时更改为其他颜色。EditText背景基线颜色根据其焦点更改android

enter image description here

我使用以下。

<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" 

    /> 

所以,请指导我如何处理这个问题。

+0

阅读关于StateListDrawable标签 in xml – pskink 2014-09-04 09:31:50

+0

你可以对此有一些清楚的想法吗? – koti 2014-09-04 09:36:14

尝试Holo自定义颜色的颜色生成器。

Android Holo Colors

您可以创建选择并将其设置为EditText

资源的背景/绘制/ 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> 

布局:

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

好的答案。您的XML代码会丢失标记。除此之外 - 谢谢兄弟! – 2016-12-09 17:06:04

+1

@AlexeyFShevelyov答案已更新。谢谢。 :) – SilentKiller 2016-12-13 05:24:56

您可以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> 

而且你可以在使用的EditText作为

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

</EditText> 
+2

确切需要什么。完美的作品。非常感谢你!!! – DmitryKanunnikoff 2017-06-03 23:28:22

使用这个在您的EDITTEXT风格

<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>