android设置圆形 带selector状态按钮

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item  android:state_focused="true"
           android:state_enabled="true"
           android:state_pressed="false">
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="@color/login_btn_press"/>
            <size
                android:width="@dimen/logint_btn_width"
                android:height="@dimen/logint_btn_width"/>

        </shape>
    </item>
    <item android:state_enabled="true"
          android:state_pressed="true" >
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="@color/login_btn_press"/>
            <size
                android:width="@dimen/logint_btn_width"
                android:height="@dimen/logint_btn_width"/>

        </shape>
    </item>
    <item android:state_enabled="true"
          android:state_checked="true">
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="@color/login_btn_press"/>
            <size
                android:width="@dimen/logint_btn_width"
                android:height="@dimen/logint_btn_width"/>

        </shape>
    </item>
    <item android:state_focused="false"
          android:state_enabled="true"
          android:state_pressed="true" >
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="@color/login_btn_press"/>
            <size
                android:width="@dimen/logint_btn_width"
                android:height="@dimen/logint_btn_width"/>

        </shape>
    </item>
    <item android:state_enabled="true" android:state_focused="true"
          android:state_pressed="false">
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="@color/login_btn_press"/>
            <size
                android:width="@dimen/logint_btn_width"
                android:height="@dimen/logint_btn_width"/>

        </shape>
    </item>
    <item android:color="@color/login_btn_normal" >
        <shape
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="oval">
            <solid android:color="@color/login_btn_normal"/>
            <size
                android:width="@dimen/logint_btn_width"
                android:height="@dimen/logint_btn_width"/>

        </shape>
    </item>
</selector>



如果图形不hi圆形的,修改

logint_btn_width

Android Studio中,创建一个圆形按钮通常需要结合`Shape Drawable`和`State ListDrawable`(selector)。首先,让我们看看如何设置: 1. **创建圆形Shape Drawable**: - 打开`res/drawable`文件夹,右键点击并选择`New > Vector Asset`。 - 在弹出的窗口中,输入资源名称,比如`round_button_shape.xml`,然后勾选"Circle"图标作为形状。 - 编辑XML内容如下: ```xml <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="@color/your_button_color" /> <!-- 设置按钮背景颜色 --> <size android:width="56dp" <!-- 按钮宽度 --> android:height="56dp" <!-- 按钮高度 --> /> </shape> ``` 2. **创建State ListDrawable (Selector)**: - 创建一个新的XML文件,如`round_button_selector.xml`,用于定义不同状态下的外观。 - 添加如下代码: ```xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/rounded_pressed_button" /> <!-- 长按或按下时的角形状 --> <item android:state_focused="true" android:drawable="@drawable/rounded_focused_button" /> <!-- 获得焦点时的角形状 --> <item android:drawable="@drawable/rounded_normal_button" /> <!-- 默认未按压时的角形状 --> </selector> ``` - 根据需求替换`pressed_button`, `focused_button`和`normal_button`为对应的资源ID,这些资源可以引用之前创建的圆形Shape Drawables。 3. **应用到Button上**: - 在布局文件中,找到你想设置圆形按钮的控件,通常是`<Button>`。 - 将其`android:background`属性设置为刚刚创建的`round_button_selector.xml`: ```xml <Button android:id="@+id/your_button_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/round_button_selector" ...其他属性.../> ``` 现在你已经创建了一个圆形按钮,并且可以根据用户交互有不同的视觉反馈。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值