借助于StateListDrawable对象,可以让文本框的颜色随文本框状态的改变而改变。
实现效果
源码
Drawable资源:highlight_edit.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 指定获取焦点时的颜色 -->
<item android:state_focused="true"
android:drawable="@color/colorTurquoise1"/>
<!-- 指定失去焦点时的颜色 -->
<item android:state_focused="false"
android:drawable="@color/colorPaleTurquoise1"/>
</selector>
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".HighlightEditActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/highlight_edit"
android:textSize="20sp"
android:padding="5dp"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/highlight_edit"
android:textSize="20sp"
android:padding="5dp"/>
</LinearLayout>