定义一个圆角的Button 样式
<style name="RoundedCornerView"> <item name="android:background">@drawable/roundedcorner</item> <item name="android:cacheColorHint">@color/trans</item> <item name="android:layout_marginTop">5dp</item> <item name="android:layout_marginLeft">10dp</item> <item name="android:layout_marginRight">10dp</item> <item name="android:layout_marginBottom">5dp</item> <item name="android:padding">12dp</item> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> </style>
边角样式:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <stroke android:width="2dp" android:color="@color/light_gray" /> <corners android:radius="10dp" /> <solid android:color="@android:color/white"/> </shape>
创建Button:
<style name="RoundedCornerBtn" parent="RoundedCornerView"> <item name="android:background">@drawable/roundedcorner_btn</item> <item name="android:gravity">left|center_vertical</item> <item name="android:textColor">@color/gray</item> </style>
定义按钮状态处理样式:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" > <shape> <stroke android:width="2dp" android:color="@color/orange" /> <corners android:radius="10dp" /> <solid android:color="@color/orange"/> </shape> </item> <item android:state_focused="true"> <shape> <stroke android:width="2dp" android:color="@color/light_gray" /> <corners android:radius="10dp" /> <solid android:color="@android:color/white"/> </shape> </item> <item > <shape> <stroke android:width="2dp" android:color="@color/light_gray" /> <corners android:radius="10dp" /> <solid android:color="@android:color/white"/> </shape> </item> </selector>
最后到layout里面定义样式:
<style name="RoundedCornerBtnWithRightArrow" parent="RoundedCornerBtn"> <item name="android:drawableRight">@drawable/view_arrow</item> </style>
实际效果显示如下:
这样做比使用layout布局要更加容易管理程序