Android 中的圆形按钮
Circle Button in Android
我的 Android 应用程序需要一个圆形按钮,我已经阅读了大约 9 个按钮补丁。我还需要按钮在您按下时更改其颜色。
9 补丁是最好的方法,还是我应该使用其他方法?
提前致谢。
只需像这样创建一个可绘制资源文件:
<?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"/>
您可以使用自定义库轻松添加圆形按钮。
我建议你使用这个:
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"
您可以执行以下操作:
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.Create 一个 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.Use 在任何布局文件的按钮标签中
<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"
/>
我的 Android 应用程序需要一个圆形按钮,我已经阅读了大约 9 个按钮补丁。我还需要按钮在您按下时更改其颜色。
9 补丁是最好的方法,还是我应该使用其他方法?
提前致谢。
只需像这样创建一个可绘制资源文件:
<?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"/>
您可以使用自定义库轻松添加圆形按钮。 我建议你使用这个: 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"
您可以执行以下操作:
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.Create 一个 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.Use 在任何布局文件的按钮标签中
<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"
/>