也可以让按钮的背景图片随按钮的状态的改变而切换。实际上StateListDrawable 的功能也非常灵活,可以让各种组件的背景前景随状态的改变而切换。有兴趣的可以查看StateListDrawale 这类的api 有很多的状态
例如:
android:state_checkeable 是否处于可勾选状态
android:focused 是否处于可获得焦点
。。。。。。。。
先看以下效果图:第一步鼠标移到文本框输入文字
第二步:鼠标移上去在第二行输入文本值
这个例子比较简单需要做的就是该两个地方,就可以做到。你可以在res/drawable-mdpi 文件中添加my_colorchange.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="#f44"
/>
<!-- 指定失去焦点时的颜色 -->
<item android:state_focused="false"
android:color="#111"
/>
</selector>
然后在layout/main.xml 中加入以下代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android "
android rientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- 使用StateListDrawable资源 -->
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@drawable/my_image"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@drawable/my_image"
/>
</LinearLayout>
就搞定了。java代码就不需要该,就可以了。当然了,如果再加一些别的效果就需要改写java代码了
例如:
android:state_checkeable 是否处于可勾选状态
android:focused 是否处于可获得焦点
。。。。。。。。
先看以下效果图:第一步鼠标移到文本框输入文字
第二步:鼠标移上去在第二行输入文本值
这个例子比较简单需要做的就是该两个地方,就可以做到。你可以在res/drawable-mdpi 文件中添加my_colorchange.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="#f44"
/>
<!-- 指定失去焦点时的颜色 -->
<item android:state_focused="false"
android:color="#111"
/>
</selector>
然后在layout/main.xml 中加入以下代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android "
android rientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<!-- 使用StateListDrawable资源 -->
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@drawable/my_image"
/>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@drawable/my_image"
/>
</LinearLayout>
就搞定了。java代码就不需要该,就可以了。当然了,如果再加一些别的效果就需要改写java代码了