实现EditText选中时底边框改变颜色

原创 2016年08月30日 15:46:02

(一)使用9Patch图片

XML布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <RelativeLayout
                android:id="@+id/domainLayout"
                android:layout_width="match_parent"
                android:layout_height="50dip"
                android:orientation="horizontal"
                android:layout_gravity="center"
                >
        <TextView android:layout_width="70dip"
            android:layout_height="match_parent"
            style="@style/text_s28_1c1c1c"
            android:gravity="right|center"
            android:text="用户名:"/>
        <com.ziniu.mobile.module.ui.component.ZiniuEdit
            android:id="@+id/domain"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingLeft="75dip"
            android:paddingRight="5dip"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            //文本框为空时提示文字颜色
            android:textColorHint="@color/wechat_text_gray"
            //文本框样式
            style="@style/text_s28_1c1c1c"
            //文本框为空时提示文字
            android:hint="请输入用户名"
            //文本框背景状态
            android:background="@drawable/line_et_bg"
            //加载文本框右端删除图标
            android:drawableRight="@drawable/edit_clear_48"
            //设置光标的颜色为@null,表示光标的颜色和输入框的字体颜色相同
            android:textCursorDrawable="@null"/> 

    <RelativeLayout
                android:id="@+id/domainLayout"
                android:layout_width="match_parent"
                android:layout_height="50dip"
                android:orientation="horizontal"
                android:layout_gravity="center"
                >
        <TextView android:layout_width="70dip"
            android:layout_height="match_parent"
            style="@style/text_s28_1c1c1c"
            android:gravity="right|center"
            android:text="用户名:"/>
        <com.ziniu.mobile.module.ui.component.ZiniuEdit
            android:id="@+id/domain"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:paddingLeft="75dip"
            android:paddingRight="5dip"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            //文本框为空时提示文字颜色
            android:textColorHint="@color/wechat_text_gray"
            //文本框样式
            style="@style/text_s28_1c1c1c"
            //文本框为空时提示文字
            android:hint="请输密码"
            //文本框背景
            android:background="@drawable/line_et_bg"
            //加载文本框右端删除图标
            android:drawableRight="@drawable/edit_clear_48"
            //设置光标的颜色为@null,表示光标的颜色和输入框的字体颜色相同
            android:textCursorDrawable="@null"/>          

    </RelativeLayout>

</RelativeLayout>
/drawable/line_et_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    //state_pressed:当控件被按下时触发相应的9Patch图片
    <item android:drawable="@drawable/textfield_activated_holo_dark" android:state_pressed= "true"/>  
    //state_focused:当控件获取焦点时
    <item android:drawable="@drawable/textfield_activated_holo_dark" android:state_focused= "true"/>  
    //state_selected:当控件被选择触发时
    <item android:drawable="@drawable/textfield_activated_holo_dark" android:state_selected= "true"/>  
    //没有选中时的状态
    <item android:drawable="@drawable/textfield_default_holo_light" />
</selector>

(二)使用样式

XML布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    tools:context="com.bignerdranch.android.edittexttest.MainActivity">

    <EditText
        android:id="@+id/login_account"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/line_et_bg"
        android:hint="请输入用户名"/>
    <EditText
        android:layout_below="@id/login_account"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/line_et_bg"
        android:hint="请输入密码"/>
</RelativeLayout>
/drawable/line_et_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    //当控件被选中时触发相应的样式
    <itemandroid:state_focused="true" android:drawable="@drawable/line_et_focus"/>
    //当控件没有被选中时触发相应的样式
    <item android:drawable="@drawable/line_et_normal"/>
</selector>
样式文件line_et_focus.xml
<?xml version="1.0" encoding="utf-8"?>
<!-- layer-list:将多个图片或两种效果按照顺序层叠起来显示,一个item包含一个显示元素 -->
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <!--  shape自定义控件,android:shape="rectangle"形状为矩形 -->
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
    <item
        android:left="-2dip"
        android:right="-2dip"
        android:top="-2dip">
        <shape>
            <solid android:color="@android:color/transparent" />
            <!-- stroke:描边,EditText只有底边 -->
            <stroke
                //边框宽度为1dip
                android:width="1dip"
                android:color="@color/colorAccent"
                android:dashGap="0dp"
                android:dashWidth="0dip" />
        </shape>
    </item>
</layer-list>
样式文件line_et_normal.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>
    <item
        android:left="-2dip"
        android:right="-2dip"
        android:top="-2dip">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="1dip"
                android:color="@color/colorPrimary"
                android:dashGap="0dp"
                android:dashWidth="0dip" />
        </shape>
    </item>
</layer-list>

参考: EditText状态变化——选中和未先中(底部变颜色的线)

android EditText输入框获得焦点时候边框变为变色

Android EditText 点击的时候,要进行二次处理,这个是为了,要有更好的用户体验 [html] view plain copy EditText...
  • tanghongchang123
  • tanghongchang123
  • 2016年09月09日 16:22
  • 2390

android edittext 边框 阴影 实现

android 边框 ,的阴影; 可以让ui设计师,做一个点九图,最直接; 但是不给做呢; 还是自己写靠谱; 来,上代码: 直接放在drawable里 ...
  • u014624241
  • u014624241
  • 2017年11月17日 15:05
  • 268

实现EditText选中时底边框改变颜色

一使用9Patch图片 XML布局 drawableline_et_bgxml 二使用样式 XML布局 drawableline_et_bgxml 样式文件line_et_focusxml 样式文件l...
  • amoscxy
  • amoscxy
  • 2016年08月30日 15:46
  • 657

Android开发中EditText当被选中后怎么修改下划线和hint值得颜色

本人琢磨了很久怎么去吧EditText的下划线和hint值被选中后的颜色改成自己想要的,在布局页面设置中也没有找到对应的属性,一个一个属性都试了一遍,最终看到那个紫红色想到res中style里面有个颜...
  • Fast_Soo_So
  • Fast_Soo_So
  • 2017年02月08日 17:27
  • 1277

EditText使用Selector设置选中与边框颜色

  • mvpstevenlin
  • mvpstevenlin
  • 2016年03月12日 13:53
  • 759

设置editText的四周边框-圆角边框

把下面的代码保存到res/drawable/edittext.xml,在layout中的EditText添加属性android:background="@drawable/edittext" edit...
  • qq_26420489
  • qq_26420489
  • 2015年12月01日 16:32
  • 4973

Android EditText 改变边框颜色的方法

一、为了更好的比较,准备两个一模一样的EditText(当Activity启动时,焦点会在第一个EditText上,如果你不希望这样只需要写一个高度和宽带为0的EditText即可避免,这里就不这么做...
  • wpwbb510582246
  • wpwbb510582246
  • 2016年09月17日 10:32
  • 236

Android EditText 改变边框颜色

为了更好的比较,准备两个一模一样的EditText(当Activity启动时,焦点会在第一个EditText上,如果你不希望这样只需要写一个高度和宽带为0的EditText即可避免,这里就不这么做了)...
  • wyyl1
  • wyyl1
  • 2015年07月10日 15:01
  • 574

edittext设置获得焦点时的边框颜色

转自:http://blog.csdn.net/jamesliulyc/article/details/6709216 第一步:为了更好的比较,准备两个一模一样的EditText(当Activi...
  • duanyipeng
  • duanyipeng
  • 2011年12月14日 20:49
  • 10990

input文本域选中后会出现蓝边框。去除方式

input文本域选中后会出现蓝边框。去除方式
  • u012857153
  • u012857153
  • 2017年03月22日 15:38
  • 9758
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现EditText选中时底边框改变颜色
举报原因:
原因补充:

(最多只允许输入30个字)