#### StateListDrawable
需要在drawable下新建selector文件(如:check_button_drawable.xml)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 资源选择器,可以根据目标视图的状态来显示对应的资源(图片、颜色) -->
<!-- 未选中 -->
<item android:drawable="@drawable/nomal" android:state_checked="false"/>
<!-- 选中状态 -->
<item android:drawable="@drawable/checked" android:state_checked="true"/>
</selector>
引用
android:button="@drawable/check_button_drawable"
定义颜色做背景,需要定义在drawable下(其实背景使用颜色指的是ColorDrawable)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/bg_nomal" android:state_pressed="false"
android:state_enabled="true"></item>
<item android:drawable="@color/bg_press" android:state_pressed="true"
android:state_enabled="true"></item>
<!-- 不可用 -->
<item android:state_enabled="false">
<color android:color="#ff666666"/>
</item>
</selector>
如果要定义文本颜色(颜色值)的选择器(int类型的颜色,不是drawable),需要在res下新建color文件夹,然后在color文件夹下新建selector的xml文件(如:tc_color.xml)
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="false" android:color="#ff000000"/>
<item android:state_pressed="true" android:color="#ffffffff"/>
</selector>
使用
<Button
android:layout_width="200dip"
android:layout_height="50dip"
android:background="@drawable/btn_color_bg"
android:text="Click Me"
android:textColor="@color/tx_color" />
#### shape标签
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- 填充颜色、渐变色 -->
<gradient
android:angle="45"
android:centerColor="#ffffff"
android:endColor="#ff0000"
android:gradientRadius="50"
android:startColor="#ffff00"
android:type="radial" />
圆角
<corners
android:bottomRightRadius="15dp"
android:topLeftRadius="15dp" />
内边距
<padding
android:bottom="15dp"
android:left="10dp"
android:right="10dp"
android:top="15dp" />
实色填充
<solid android:color="#ff0000" />
边框
<stroke android:dashWidth="2dip" 虚线宽度
android:dashGap="3dp" 虚线的间隔
android:width="2dip" 边框宽度
android:color="#ffff00" />
</shape>