Android如何让按钮显示为圆形
时间: 2024-10-23 08:07:55 浏览: 37
Android实现圆形纯数字按钮
在Android中,如果你想让按钮显示为圆形,你可以通过自定义视图或者使用XML布局属性来实现。这里介绍两种常见方法:
1. 自定义ShapeDrawable或CircleButton:
- **创建一个自定义View**:
创建一个新的`ShapeDrawable`,然后设置它的形状为圆形。首先,你需要创建一个`oval.xml`文件,内容类似这样:
```xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@android:color/white" /> <!-- 设置背景颜色 -->
<corners android:radius="50dp" /> <!-- 设置圆角 -->
<padding android:left="4dp" android:top="4dp" android:right="4dp" android:bottom="4dp" /> <!-- 内边距 -->
</shape>
```
然后在你的Activity或Fragment中,创建一个`CircleButton`类并覆盖`onDraw()`方法:
```java
public class CircleButton extends View {
private ShapeDrawable mBackground;
public CircleButton(Context context) {
this(context, null);
}
public CircleButton(Context context, @Nullable AttributeSet attrs) {
this(context, attrs, 0);
}
public CircleButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private void init() {
mBackground = new ShapeDrawable(getDrawable(R.drawable.oval));
setDrawingCacheEnabled(true);
setWillNotDraw(false);
setBackground(mBackground);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
mBackground.setBounds(0, 0, getWidth(), getHeight());
mBackground.draw(canvas);
}
}
```
2. 使用XML布局属性:
- 在XML布局文件中,你可以直接给按钮添加一个`app:backgroundTint`属性,并设置为半透明的白色,同时使用`android:shape="oval"`使其呈现圆形:
```xml
<Button
android:id="@+id/circle_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:theme="@style/Theme.AppCompat.Button.Borderless"
app:backgroundTint="?attr/colorPrimary"
android:shape="oval"/>
```
这里使用的`selectableItemBackgroundBorderless`会去掉按钮周围的轮廓线。
阅读全文