Android中的圆形按钮,不扩展尺寸

时间:2018-07-13 01:46:02

标签: android android-drawable android-button rounded-corners android-background

This帖子提供了大量答案,这些答案解释了如何在Android中创建圆形按钮。但几乎所有答案最终都会扩大按钮的大小。

例如,在此布局中,请注意顶部按钮(带有圆角的按钮)与其他按钮相比具有显着更多的填充。

Screenshot

这是不带圆角的按钮的代码;

<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"
    />

背景是此可绘制对象:

<?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>

3 个答案:

答案 0 :(得分:2)

尝试删除样式属性,仅设置背景可绘制。

答案 1 :(得分:1)

这可以通过更新的支持库(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" />

看看this great article

答案 2 :(得分:0)

使用MaterialButton

并为圆角添加app:cornerRadius="8dp"