📅  最后修改于: 2023-12-03 15:24:06.915000             🧑  作者: Mango
在 Android 应用中,经常需要将按钮的显示形态进行定制化,可以通过修改按钮样式来实现。其中,圆角按钮是一种比较常规的定制化方式,本文将介绍如何在 Android 按钮中添加圆角半径。
在 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
方法分别用于设置填充颜色和描边颜色。
两种方式均可以实现圆角按钮的定制化效果,选择哪种方式要根据实际需求和使用习惯做出选择。