MainActivity如下:
package cc.teststatelistdrawable; import android.os.Bundle; import android.app.Activity; /** * Demo描述: * 利用StateListDrawable当EditText获得,失去焦点时分别设置其内容的不同颜色 * * StateListDrawable从其名字就可以大概知晓其用途.用于在其 * 作用的控件状态发生改变时改变其背景或者颜色. * 常见的状态为:是否获得焦点,是否被勾选(check),是否被按下等. * * 该Demo主要使用了StateListDrawable(xml形式)来实现的,当然 * 亦可采用代码形式.可以参见下面的资料 * * 参考资料 * 1 Android疯狂讲义(第二版) 作者李刚 * 2 http://blog.csdn.net/sodino/article/details/6797821 * 3 http://gundumw100.iteye.com/blog/850636 * 4 http://blog.csdn.net/qinjuning/article/details/7474827 * 5 http://yq135314.iteye.com/blog/1333511 * Thank you very much * */ public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
main.xml如下:
<LinearLayout 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:orientation="vertical" > <EditText android:layout_width="220dip" android:layout_height="wrap_content" android:hint="username" android:textColor="@drawable/statelistdrawable" /> <EditText android:layout_width="220dip" android:layout_height="wrap_content" android:hint="password" android:textColor="@drawable/statelistdrawable" /> </LinearLayout>
statelistdrawable.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="#f55"></item> <item android:state_focused="false" android:color="#eee"></item> </selector>