效果如下:
点击前
点击后
shape文件和颜色选择器的定义都必须定义在drawable文件夹下
bind_bg_normal.xml 正常时候的颜色
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"><!-- android:shape="rectangle"表示圆角长方形 -->
<corners android:radius="2dp"/><!-- 圆角的弧度 -->
<gradient android:startColor="@color/black"
android:endColor="@color/blue"/><!-- 渐变色的设置 这里可以设置起始 中间 结束位置的颜色 -->
<!-- 设置边框颜色 宽度 dashWidth虚线的长度 虚线之间的间隔长度dashGap -->
<stroke android:width="1dp" android:dashWidth="10dp" android:dashGap="1dp" android:color="@color/white"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="2dp"/>
<gradient android:startColor="@color/white"
android:endColor="@color/black"/>
<stroke android:width="1dp" android:dashWidth="10dp" android:dashGap="15dp" android:color="@color/blue"/>
</shape>
bind_bg_selected.xml颜色选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下时显示颜色 -->
<item android:drawable="@drawable/bind_bg_pressed" android:state_pressed="true"/>
<!-- 获取焦点显示颜色 -->
<item android:drawable="@drawable/bind_bg_pressed" android:state_focused="true"/>
<!-- 选择状态时显示颜色 -->
<item android:drawable="@drawable/bind_bg_normal" android:state_selected="true"/>
<!-- 正常状态下显示颜色 -->
<item android:drawable="@drawable/bind_bg_normal"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#000000</color>
<color name="blue">#FF3F00</color>
<color name="white">#FFFFFF</color>
</resources>
main.xml 别忘记用android:background导入颜色选择器,让其作用于这个布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/bind_bg_selected"
android:clickable="true" ><!-- RelativeLayout必须加android:clickable="true" 点击才有反映 -->
<TextView
android:layout_width="fill_parent"
android:layout_height="30dp"
android:gravity="center"
android:text="SHAPE" />
</RelativeLayout>
</LinearLayout>