如何制作圆形按钮?

use*_*635 135 android

我正在尝试制作一个圆形按钮,但我不知道该怎么做.我可以制作带圆角的按钮,但我怎么能圆圈.这是不一样的.请告诉我,Android上有可能吗?谢谢.

Ari*_*eem 247

创建一个以roundedbutton.xmldrawable文件夹命名的xml文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle">
    <solid android:color="#eeffffff" />
    <corners android:bottomRightRadius="8dp"
        android:bottomLeftRadius="8dp"  
        android:topRightRadius="8dp"
        android:topLeftRadius="8dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

最后设置为背景,以您Buttonandroid:background = "@drawable/roundedbutton"

如果你想让它完全圆润,改变半径并找到适合你的东西.

  • 另外,为什么不使用android:shape ="oval" (6认同)
  • 在drawable这个词之前不需要'@'符号吗? (2认同)

小智 36

如果使用Android Studio,您可以使用:

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring">
        <solid android:color="#FFFFFF"/>

    </shape>
Run Code Online (Sandbox Code Playgroud)

这对我来说很好,希望这有助于某人.

  • 使用`ring`不会显示任何内容.最好使用`oval`. (10认同)
  • 应该是接受的答案,使用角点值不会超出圆角,这个问题是关于一个圆圈.谢谢Shaun的回答 (2认同)

小智 29

  1. 创建一个drawable/button_states.xml文件,其中包含:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="false"> 
            <shape android:shape="rectangle">
            <corners android:radius="1000dp" />
            <solid android:color="#41ba7a" />
            <stroke
                android:width="2dip"
                android:color="#03ae3c" />
            <padding
                android:bottom="4dp"
                android:left="4dp"
                android:right="4dp"
                android:top="4dp" />
            </shape>
        </item>
        <item android:state_pressed="true"> 
            <shape android:shape="rectangle">
            <corners android:radius="1000dp" />
            <solid android:color="#3AA76D" />
            <stroke
                android:width="2dip"
                android:color="#03ae3c" />
            <padding
                android:bottom="4dp"
                android:left="4dp"
                android:right="4dp"
                android:top="4dp" />
            </shape>
        </item>
    </selector>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在任何布局文件中的按钮标记中使用它

    <Button
        android:layout_width="220dp"
        android:layout_height="220dp"
        android:background="@drawable/button_states"
        android:text="@string/btn_scan_qr"
        android:id="@+id/btn_scan_qr"
        android:textSize="15dp"
    />
    
    Run Code Online (Sandbox Code Playgroud)


LOG*_*TAG 14

Markushi的android圈子:

(这个库已被弃用,没有新的开发过程.请考虑使用FAB.)

在此输入图像描述

  • 警告:**已弃用!** (4认同)

小智 7

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid
    android:color="#ffffff"
    />
</shape>
Run Code Online (Sandbox Code Playgroud)

将它设置在您的 XML 可绘制资源上,并使用您的可绘制对象作为背景,简单使用和带有圆形图像的图像按钮。


Rob*_*rdi 7

如果你想要一个看起来像 FAB 的圆形按钮并且你正在使用官方的 Material Component 库,你可以很容易地这样做:

<com.google.android.material.button.MaterialButton
    style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton"
    app:cornerRadius="28dp"
    android:layout_width="56dp"
    android:layout_height="56dp"
    android:text="1" />
Run Code Online (Sandbox Code Playgroud)

结果:

在此处输入图片说明

如果您更改按钮的大小,请注意将按钮大小的一半用作app:cornerRadius.


Ras*_*iri 7

2021 年更新:

只需使用材质按钮

<com.google.android.material.button.MaterialButton
    app:cornerRadius="30dp"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:text="test" />
Run Code Online (Sandbox Code Playgroud)
  • 宽度等于高度
  • cornerRadius 是宽度或高度的一半


小智 6

<corners android:bottomRightRadius="180dip"
    android:bottomLeftRadius="180dip"
    android:topRightRadius="180dip"
    android:topLeftRadius="180dip"/>

<solid android:color="#6E6E6E"/> <!-- this one is ths color of the Rounded Button -->
Run Code Online (Sandbox Code Playgroud)

并将其添加到按钮代码中

    android:layout_width="50dp"
    android:layout_height="50dp"
Run Code Online (Sandbox Code Playgroud)


小智 5

使用的形状为椭圆形.这使按钮呈椭圆形

<item>
    <shape android:shape="oval" >
        <stroke
            android:height="1.0dip"
            android:width="1.0dip"
            android:color="#ffee82ee" />

        <solid android:color="#ffee82ee" />

        <corners
            android:bottomLeftRadius="12.0dip"
            android:bottomRightRadius="12.0dip"
            android:radius="12.0dip"
            android:topLeftRadius="12.0dip"
            android:topRightRadius="12.0dip" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)