Android中的圆形按钮

时间:2015-03-02 18:23:59

标签: android user-interface android-activity android-studio

我的Android APP需要一个圆形按钮,我已经阅读了大约9个按钮补丁。按下它时,我还需要按钮改变颜色。

9补丁是最好的方法,还是应该使用其他方法?

提前致谢。

4 个答案:

答案 0 :(得分:2)

您可以执行以下操作:

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"
        android:drawable="@drawable/button_not_pressed"/>

    <item android:state_pressed="true"
        android:drawable="@drawable/button_pressed"/>

</selector>

2)创建文件drawable / button_pressed.xml文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
    <solid android:color="#fff" />
    <corners android:radius="30dp"></corners>
</shape>

3)创建文件drawable / button_not_pressed.xml文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
    <solid android:color="#000" />
    <corners android:radius="30dp"></corners>
</shape>

4)在按钮中使用它:

<Button
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:background="@drawable/button_states"
      android:text="New Button"
      android:id="@+id/button1" />

希望它有所帮助!!!

答案 1 :(得分:1)

只需创建一个可绘制的资源文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#FFFFFF"/> <!--the color you want as background-->
</shape>

并在您需要此按钮的XML文件中,将其背景设置为您在上面创建的文件的名称以及他的高度和宽度相等,以获得圆形按钮:

<Button
    android:id="@+id/button"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:text="Button" 
    android:background="@drawable/nameOfTheDrawableYouCreatedBefore"/>

答案 2 :(得分:1)

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>

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"
/>

答案 3 :(得分:0)

您可以使用自定义库轻松添加圆形按钮。 我建议你用这个: https://github.com/makovkastar/FloatingActionButton 这很容易。只需将此代码添加到xml:

<com.melnykov.fab.FloatingActionButton
            android:id="@+id/fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|right"
            android:layout_margin="16dp"
            android:src="@drawable/ic_action_content_new"
            fab:fab_colorNormal="@color/primary"
            fab:fab_colorPressed="@color/primary_pressed"
            fab:fab_colorRipple="@color/ripple" />

不要忘记在父标记中添加代码:

     xmlns:fab="http://schemas.android.com/apk/res-auto"