1

在我的 Android Studio 应用程序中,我有一个按钮,我为它设置了一个可绘制对象作为背景。可绘制圆角并更改按钮的颜色。但是,当我查看活动的最终设计时,我想要的颜色并没有出现。相反,该按钮采用 colorPrimary(橙色,#ED3616)。当我运行应用程序时也会发生同样的情况。注意:可绘制文件的其他属性完美地转换为按钮(即圆角)。问题只是颜色。

我尝试使用 MaterialButton,并使用 android:backgroundTint 设置颜色。然后,颜色确实显示为我想要的,但设计看起来很奇怪(按钮内部有一个不同颜色的矩形(如果你想看的话,MaterialButton 的图片

如何使常规按钮具有我想要的颜色?

按钮:

<Button
    android:background="@drawable/round2"
    android:id="@+id/signIn"
    android:layout_width="256dp"
    android:layout_height="66dp"
    android:text="@string/logIn"
    android:textColor="#FFFFFF"
    android:textSize="25sp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.496"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.878" />

可绘制:round2.xml:

    <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid
        android:color="#B30C44"
        android:paddingLeft="6dp"
        android:paddingTop="6dp" />
    <corners
        android:bottomRightRadius="20dp"
        android:bottomLeftRadius="20dp"
        android:topLeftRadius="20dp"
        android:topRightRadius="20dp"/>
    <padding
        android:bottom="6dp"
        android:left="6dp"
        android:right="6dp"
        android:top="6dp" />
</shape>

显示的内容: 按钮的外观

4

1 回答 1

0

发生这种情况是因为 的默认样式MaterialButton(如果您使用主题,则自动Button替换为)使用.MaterialButtonMaterialComponentscolorPrimary

你必须使用:

<Button
    android:background="@drawable/round2"
    app:backgroundTint="@null"
    ... />
于 2020-08-20T15:04:34.917 回答