实现思路:
1、shape实现圆角
在drawable新建两个xml 文件, 这两个 xml文件用shape 实现了圆角效果。
Note:
因为要让用户有按下去的效果体验, 所有要有两套圆角图, 在按下去时候切换
<!-- res/drawable/button_shape_normal.xml --><shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle" ><!-- rounded corner --><corners android:radius="5dp" /><solid android:color="@color/orange_normal" /></shape>
<!-- res/drawable/button_shape_pressed.xml --><shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle" ><!-- rounded corner --><corners android:radius="5dp" /><!-- fill with two colors, and the two colors change softly --><!-- <gradientandroid:angle="270"android:startColor="@color/orange_light"android:endColor="@color/orange_normal"android:useLevel="true" />--><solid android:color="@color/orange_light" /></shape>2、selector实现按下效果
<!-- res/drawable/button_shape.xml --><selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/button_shape_normal" android:state_pressed="false"/><item android:drawable="@drawable/button_shape_pressed" android:state_pressed="true"/></selector>3、style实现多个按钮复用
<style name="SmsButton"><item name="android:layout_width">0dp</item><item name="android:layout_weight">1</item><item name="android:layout_height">wrap_content</item><item name="android:textSize">20sp</item><item name="android:background">@drawable/button_shape</item><item name="android:textColor">@color/white</item></style>4、引用圆角按钮
<Buttonandroid:id="@+id/fireup"style="@style/SmsButton"android:layout_marginEnd="20dp"android:layout_marginStart="20dp"android:text="@string/fireup" />可以省去建立style的步骤, 直接在layout里面引用即可。