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"/>
这也是一个有效的答案,我没有意识到文档的这一部分,我还是一个初学者。