selector
selector是存放在drawable文件夹中 用来设置控件背景和字体颜色的
设置控件背景
一般写法如下(drawable_selector.xml):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"><!--被按下时-->
<shape android:shape="rectangle"><!--默认为矩形,可以设置为矩形(rectangle)、椭圆形(oval)、线性形状(line)、环形(ring)-->
<corners android:radius="15dp" /> <!--圆角-->
<solid android:color="#0f0"/> <!--内部填充色-->
</shape>
</item>
<item><!--最后一个item不设置state_pressed时表示所有其他状态(只有在最后才能不写state_pressed不然之后的item会被忽略)-->
<shape>
<corners android:radius="15dp" />
<solid android:color="#f00"/>
</shape>
</item>
</selector>
控件中设置:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按钮"
android:id="@+id/mianBtn"
android:background="@drawable/drawable_selector"/>
效果:
按下前
按下
在实际开发中可以将shape单独写成一个shape文件通过item的drawable属性导入 drawable属性也可导入图片 即以图片做控件背景 这时item中的shape元素将无效果
代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@mipmap/menu_disarm1"/>
<item android:drawable="@mipmap/menu_disarm"/>
</selector>
设置字体颜色
一般写法如下(color_selector.xml):
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#f00"/> <!--按下-->
<item
android:color="#00f"/> <!--其他状态-->
</selector>
控件中设置:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按钮"
android:id="@+id/mianBtn"
android:textColor="@drawable/color_selector"/>