直接看源码和注释吧
1.activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#9AC0CD" android:orientation="vertical" android:gravity="bottom|center_horizontal" > <Button android:id="@+id/bt_00" android:layout_width="250dp" android:layout_height="50dp" android:layout_margin="5dp" android:text="普通按钮" android:textSize="20dp" /> <Button android:id="@+id/bt_01" android:layout_width="250dp" android:layout_height="50dp" android:layout_margin="5dp" android:background="@drawable/shape" style="@style/yuan_style" android:text="圆角按钮" android:textColor="#CD3700" android:textSize="20dp" /> <!--按下文字切换--> <Button android:id="@+id/bt_02" android:layout_width="250dp" android:layout_height="50dp" android:layout_margin="5dp" android:background="@drawable/shape" style="@style/Button_style" android:text="按下切换文字" android:textColor="@drawable/test_color_selector" android:textSize="20dp" /> <!--按下背景切换--> <Button android:id="@+id/bt_03" android:layout_width="250dp" android:layout_height="50dp" android:text="按下切换背景" android:textSize="20dp" android:background="@drawable/button_selector" style="@style/Button_style" /> <!--按下文字、背景同时切换--> <Button android:id="@+id/bt_about" style="@style/Button_style" android:layout_width="250dp" android:layout_height="50dp" android:layout_margin="5dp" android:text="@string/about" android:textSize="25dp" android:textColor="@drawable/test_color_selector" android:background="@drawable/button_selector" /> </LinearLayout>
2.styles.xml
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style> <!--设置按钮文字颜色--> <style name="Button_style"> <item name="android:textColor">#fff333</item> </style> <style name="comon_style"> <item name="android:textSize">25px</item> <item name="android:textColor">#EE7600</item> <item name="android:background">#EECFA1</item> </style> <style name="yuan_style"> <item name="android:textSize">25px</item> <item name="android:textColor">#EE7600</item> <item name="android:background">#FF69B4</item> </style> </resources>
3.shap.xml
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <!-- 填充的颜色 --> <solid android:color="#FFC0CB" /> <!-- 设置按钮的四个角为弧形 --> <!-- android:radius 弧形的半径 --> <corners android:radius="5dip" /> <!-- padding:Button里面的文字与Button边界的间隔 --> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> <!--描边--> <stroke android:width="2dp" android:color="#dcdcdc" /> </shape>
4.test_color_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <item android:state_pressed = "true" android:color = "#ffff0000"/> <item android:state_pressed = "false" android:color = "#FCFCFC" /> </selector>
5.button_selector.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <item android:state_pressed = "true" android:color = "#ffff0000"/> <item android:state_pressed = "false" android:color = "#FCFCFC" /> </selector>
6.btn_bg_normal.xml
<!--按钮正常展示时的背景--> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <!--矩形圆角弧度--> <corners android:radius="10dp"/> <!--矩形填充色--> <solid android:color="#FF4081"/> <!-- 矩形的边框的宽度,每段虚线的长度,和两段虚线之间的颜色和颜色 --> <stroke android:width="1dp" android:dashWidth="8dp" android:dashGap="4dp" android:color="#4eb621" /> </shape>
7.btn_bg_pressed.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <corners android:radius="10dp"/> <solid android:color="#3f51b1"/> <!-- 矩形的边框的宽度,每段虚线的长度,和两段虚线之间的颜色和颜色 --> <stroke android:width="1dp" android:color="#4eb621" android:dashGap="4dp" android:dashWidth="8dp" /> </shape>
实际效果:
参考:http://blog.csdn.net/wenwen091100304/article/details/49667293