1.selector
实现按钮的点击效果
在新建res文件下的 drawable下创建selector.xml
内容:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下时候的图片 -->
<item android:drawable="@drawable/button_query_pressed" android:state_pressed="true"/>
<!-- 正常时候的图片 -->
<item android:drawable="@drawable/button_query_normal" android:state_pressed="false"/>
</selector>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="26dp"
<span style="color:#ff0000;"> android:background="@drawable/btn_selector"</span>
android:text="点击" />
2.shape
可以实现按钮圆角效果
在新建res文件下的 drawable下创建shape.xml
corners:设置边角的圆弧大小
solid:设置颜色
stroke:设置边框颜色已经边框宽度
实心按钮:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="10dp" />
<solid android:color="#3498DB" />
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners android:radius="10dp" />
<stroke
android:width="1dp"
android:color="#3498DB" />
</shape>
3.layer-list
实现阴影效果
在新建res文件下的 drawable下创建shadow.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 阴影部分 -->
<!-- 个人觉得更形象的表达:top代表下边的阴影高度,left代表右边的阴影宽度。其实也就是相对应的offset,solid中的颜色是阴影的颜色,也可以设置角度等等 -->
<item
android:left="2dp"
android:top="2dp">
<shape android:shape="rectangle" >
<gradient
android:angle="270"
android:endColor="#66000000"
android:startColor="#66666666" />
<corners
android:bottomLeftRadius="6dip"
android:bottomRightRadius="6dip"
android:topLeftRadius="6dip"
android:topRightRadius="6dip" />
</shape>
</item>
<!-- 背景部分 -->
<!-- 形象的表达:bottom代表背景部分在上边缘超出阴影的高度,right代表背景部分在左边超出阴影的宽度(相对应的offset) -->
<item
android:bottom="2dp"
android:right="2dp">
<shape android:shape="rectangle" >
<solid android:color="#eee" />
<corners
android:bottomLeftRadius="6dip"
android:bottomRightRadius="6dip"
android:topLeftRadius="6dip"
android:topRightRadius="6dip" />
<padding
android:bottom="2dp"
android:right="2dp" />
</shape>
</item>
</layer-list>