<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:background=“#4646aa”
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=“mcxtzhang.selectordemo.MainActivity”>
<ImageView android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:background=“@drawable/selector_background_btn”
android:clickable=“true” />
selector_background_btn.xml 文件如下:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android=“http://schemas.android.com/apk/res/android”>
<item android:drawable=“@drawable/btn_pressed” android:state_pressed=“true” />
================================================================
二:为 文字设置Selector
以上为众所周知的做法,可是今天的同事问我 TextView Button 等能显示文字的控件,上面的TextColor能用Selector做么?我不假思索的回答,当然可以。做法如下:
<Button
android:layout_marginTop=“100dp”
android:textColor=“@drawable/selector_color_text”
android:text=“测试颜色变色不”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content” />
对应Selector文件如下:
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android=“http://schemas.android.com/apk/res/android”>
<item android:color=“#fdfffe” android:state_pressed=“true” />
这里有个坑点是,一开始我用
<item android:color=“#fdfffe” android:state_pressed=“true” />
这种把android:color 写成硬编码的形式,可是会报错无效果,反正出不来结果。
后来搜了一下资料,说是要把color的值也写在xml里(colos.xml),然后在Selector文件里引用,如 @color/xxx。
或者引用系统的,如
<ite