📜  如何在 android 按钮中添加圆角半径 (1)

📅  最后修改于: 2023-12-03 15:24:06.915000             🧑  作者: Mango

如何在 Android 按钮中添加圆角半径

在 Android 应用中,经常需要将按钮的显示形态进行定制化,可以通过修改按钮样式来实现。其中,圆角按钮是一种比较常规的定制化方式,本文将介绍如何在 Android 按钮中添加圆角半径。

方法一:通过 XML 定义圆角按钮样式

在 res/drawable 目录下创建一个 xml 文件,例如 rounded_button.xml 的内容如下:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle"
       android:padding="10dp">
    <corners
        android:radius="15dp"
        android:bottomRightRadius="0dp"
        android:bottomLeftRadius="0dp"
        android:topLeftRadius="0dp"
        android:topRightRadius="0dp"/>
    <solid
        android:color="@color/colorPrimary"/>
    <stroke
        android:width="1dip"
        android:color="@color/colorPrimaryDark"/>
</shape>

其中,<corners> 标签的属性 android:radius 表示整个按钮的圆角半径,<corners> 标签内的其他属性可以指定按钮的各个角的圆角半径。<solid> 标签和 <stroke> 标签分别指定按钮的填充颜色和描边颜色。

使用这个 xml 文件可以定义一个样式化的圆角按钮,示例代码如下:

<Button
    android:id="@+id/rounded_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Rounded Button"
    android:background="@drawable/rounded_button"/>
方法二:通过代码定义圆角按钮样式

通过 Java 代码也可以实现定义圆角按钮样式的功能,示例代码如下:

Button roundedButton = new Button(this);
roundedButton.setText("Rounded Button");

GradientDrawable shapeDrawable = new GradientDrawable();
shapeDrawable.setCornerRadius(16);

int colorPrimary = ContextCompat.getColor(this, R.color.colorPrimary);
int colorPrimaryDark = ContextCompat.getColor(this, R.color.colorPrimaryDark);
shapeDrawable.setColor(colorPrimary);
shapeDrawable.setStroke(1, colorPrimaryDark);

roundedButton.setBackground(shapeDrawable);

其中,GradientDrawable 类表示一个可绘制的形状,setCornerRadius 方法用于设置圆角半径,setColor 方法和 setStroke 方法分别用于设置填充颜色和描边颜色。

两种方式均可以实现圆角按钮的定制化效果,选择哪种方式要根据实际需求和使用习惯做出选择。