This帖子有很多解释,解释如何在Android中创建一个圆形按钮。但几乎所有答案最终都会扩大按钮的大小。
例如,在此布局中,请注意顶部按钮(具有圆角的按钮)与其余按钮相比具有明显更多的填充。
这是没有圆角的按钮的代码;
<Button
android:id="@+id/useKeyboardButton"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="@string/use_keyboard_msg"
app:layout_constraintBottom_toTopOf="@+id/privacyPolicyButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/enableKeyboardButton"
style="@style/Widget.AppCompat.Button.Colored"
/>
这是圆角按钮的代码:
<Button
android:id="@+id/enableKeyboardButton"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:text="@string/enable_keyboard_msg"
app:layout_constraintBottom_toTopOf="@+id/useKeyboardButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
style="@style/Widget.AppCompat.Button.Colored"
android:background="@drawable/rounded_corners"
/>
背景是这个drawable:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/colorAccent"/>
<corners android:radius="10dp"/>
</shape>
尝试删除样式属性,仅设置背景可绘制。
这可以通过更新的支持库(v28)MaterialButton
来完成。
<android.support.design.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="MATERIAL BUTTON"
android:textSize="18sp"
app:icon="@drawable/ic_android_white_24dp" />
并添加app:cornerRadius="8dp"
for圆角