Android Drawable不将格式应用于“我的按钮”

Android Drawable不将格式应用于“我的按钮”,android,drawable,android-button,material-components,material-components-android,Android,Drawable,Android Button,Material Components,Material Components Android,我有一个可拉式按钮,旨在制作我的圆形按钮: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color="@colo

我有一个可拉式按钮,旨在制作我的圆形按钮:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/colorPrimary"/>
            <corners android:radius="150dp"/>
        </shape>
    </item>
</selector>

我通常在我的按钮后面叫他

<Button
        android:id="@+id/btnPhoto"
        android:background="@drawable/bg_btn_rounded"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="42dp"
        android:layout_marginEnd="8dp"
        android:text="@string/btnphoto"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

但是没有对组件进行任何更改,我尝试在其他组件上使用Drawable,但它不适用。。。我不知道为什么会这样

我的完整屏幕:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.misael.appchat.RegisterActivity">

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/tUsername"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        android:layout_width="0dp"
        android:layout_height="80dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="16dp"
        android:hint="@string/usernameHint"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/btnPhoto">


        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/editUsername"
            android:layout_width="match_parent"
            android:layout_height="68dp" />

    </com.google.android.material.textfield.TextInputLayout>

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/tEmail"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        android:layout_width="0dp"
        android:layout_height="80dp"
        android:layout_marginTop="24dp"
        android:hint="@string/loginHint"
        app:layout_constraintEnd_toEndOf="@+id/tUsername"
        app:layout_constraintStart_toStartOf="@+id/tUsername"
        app:layout_constraintTop_toBottomOf="@+id/tUsername">


        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/editEmail"
            android:layout_width="match_parent"
            android:layout_height="68dp" />

    </com.google.android.material.textfield.TextInputLayout>

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/tSenha"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        android:layout_width="0dp"
        android:layout_height="80dp"
        android:layout_marginTop="24dp"
        android:hint="@string/passwordHint"
        app:layout_constraintEnd_toEndOf="@+id/tEmail"
        app:layout_constraintStart_toStartOf="@+id/tEmail"
        app:layout_constraintTop_toBottomOf="@+id/tEmail">


        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/editPassword"
            android:layout_width="match_parent"
            android:layout_height="68dp"
            android:inputType="textPassword" />

    </com.google.android.material.textfield.TextInputLayout>

    <com.google.android.material.button.MaterialButton
        android:id="@+id/btnRegister"
        style="@style/Widget.MaterialComponents.Button.OutlinedButton"
        android:layout_width="0dp"
        android:layout_height="58dp"
        android:layout_marginTop="32dp"
        android:text="@string/signinButton"
        android:textColor="#7517bd"
        app:layout_constraintEnd_toEndOf="@+id/tSenha"
        app:layout_constraintStart_toStartOf="@+id/tSenha"
        app:layout_constraintTop_toBottomOf="@+id/tSenha" />

    <Button
        android:id="@+id/btnPhoto"
        android:background="@drawable/bg_btn_rounded"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="42dp"
        android:layout_marginEnd="8dp"
        android:text="@string/btnphoto"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

是否使用材质组件主题?如果是这样的话,您的
标签将膨胀为
com.google.android.material.button.MaterialButton
。此小部件的状态为:

不要使用
android:background
属性
MaterialButton
管理其自己的后台绘图,设置新的后台意味着
MaterialButton
无法再保证它引入的新属性将正常工作

如果不需要特殊的MaterialButton行为,可以显式指定要使用的其他button类。将您的
标记改为此:

<androidx.appcompat.widget.AppCompatButton
    android:id="@+id/btnPhoto"
    android:background="@drawable/bg_btn_rounded"
    android:layout_width="150dp"
    android:layout_height="150dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="42dp"
    android:layout_marginEnd="8dp"
    android:text="@string/btnphoto"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" /

如果您使用的是材质主题,则会启用一个自动充气,在运行时将
替换为

也检查一下这个

只需使用
应用程序:backgroundTint
attibute定义背景色,使用
应用程序:cornerRadius
定义角半径即可

比如:

<com.google.android.material.button.MaterialButton
    android:id="@+id/btnPhoto"
    app:backgroundTint="@color/primaryLightColor"
    app:cornerRadius="150dp"
    android:layout_width="150dp"
    android:layout_height="150dp"/>


这也是一个有效的答案,我没有意识到文档的这一部分,我还是一个初学者。