Android button 圆角动态更改背景颜色

时间:2022-10-04 15:31:12

最新在升级方面做UI方面的优化,遇到需要在一个圆角型的对话框中最下边的两个方形button分别进行优化成最下角为圆形和右下角圆形,本来是让UED部门进行切图,无奈人言微轻不给切图,只有自己动手实现。

圆角button实现(左下角和右下角为圆角)

方法一:如果有背景图片切换,可以定义属性

<Button
            android:id="@+id/ok_btn"
            android:layout_width="284dp"
            android:layout_height="66dp"
            android:layout_alignParentBottom="true"
            android:layout_marginTop="28dp"
            android:text="@string/detemin_btun"
            android:background="@drawable/upgrade_btn_left_selector"
            android:textColor="@layout/upgrade_bt_textcolor"
            android:textSize="30sp" />

在drawable中定义upgrade_btn_left_selector.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/btn_focus_left" android:state_enabled="true" android:state_focused="true" android:state_pressed="false"/>
    <item android:drawable="@drawable/btn_focus_left" android:state_enabled="true" android:state_pressed="true"/>
    <item android:drawable="@drawable/btn_normal_left"/>

</selector>

方法二:没有背景图片切换

<Button
            android:id="@+id/ok_btn"
            android:layout_width="284dp"
            android:layout_height="66dp"
            android:layout_alignParentBottom="true"
            android:layout_marginTop="28dp"
            android:text="@string/detemin_btun"

            android:background="@drawable/upgrade_btn_left_selector"

            android:textColor="@layout/upgrade_bt_textcolor"
            android:textSize="30sp" />

在在drawable中定义upgrade_btn_left_selector.xml文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 
    <!--
    <item android:drawable="@drawable/btn_focus_left" android:state_enabled="true" android:state_focused="true" android:state_pressed="false"/>
    <item android:drawable="@drawable/btn_focus_left" android:state_enabled="true" android:state_pressed="true"/>
    <item android:drawable="@drawable/btn_normal_left"/>
    -->
      
    <item android:state_pressed="true"  >
      <shape>  
            <!-- 设置背景填充色 -->  
            <solid android:color="#007AFF"/>
            <!-- 设置边框宽度为1dp,边框颜色 -->  
            <stroke android:width="1dp" android:color="#324061" />  
            <!-- 设置按钮圆角半径为10dp -->  
            <corners android:bottomLeftRadius="10dp" />  
      </shape>
    </item>  
    <item android:state_focused="true"  >
      <shape>  
            <!-- 设置背景填充色 -->  
            <solid android:color="#007AFF"/>
            <!-- 设置边框宽度为1dp,边框颜色 -->  
            <stroke android:width="1dp" android:color="#324061" />   
            <!-- 设置按钮圆角半径为10dp -->  
            <corners android:bottomLeftRadius="10dp" />  
      </shape>
    </item>
    <item android:right="-1dp">
      <shape>  
            <!-- 设置背景填充色 -->  
            <solid android:color="#0A1A42"/>  
            <!-- 设置边框宽度为1dp,边框颜色 -->  
            <stroke android:width="1dp" android:color="#324061" />
            <!-- 设置按钮圆角半径为10dp -->  
            <corners android:bottomLeftRadius="10dp" />  
      </shape>
    </item>
    
</selector>


这是综合网上资料结合自身情况具体实现过的,有时间记录下来,下次用到时忘了再随时查看~