无法将形状应用于按钮

时间:2018-11-06 08:33:23

标签: android android-layout button

我有一个奇怪的问题。我创建了一个简单的Button,看起来像这样:

<com.google.android.material.button.MaterialButton
android:id="@+id/continue_button"
android:background="@drawable/green_button_selector"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/landing_margin"
android:layout_marginEnd="@dimen/landing_margin"
android:layout_marginBottom="@dimen/landing_margin"
android:text="@string/login_button_text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />

我想将Button变成带有圆角的绿色,因此我创建了一个名为green_button_selector的xml文件,并将其设置为按钮背景。此文件代码发布在下面

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

但是不是我的按钮变绿了,而是我的应用有了colorAccent,有什么主意我做错了吗?

2 个答案:

答案 0 :(得分:0)

如果您使用的是材质按钮,则无需创建自定义可绘制对象。

<com.google.android.material.button.MaterialButton
    style="@style/Widget.MaterialComponents.Button"
    android:textAppearance="@style/TextAppearance.AppCompat.Small"
    app:backgroundTint="@android:color/holo_green_dark"
    app:cornerRadius="10dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="BUTTON" />

enter image description here

更多:https://material.io/develop/android/components/material-button/

答案 1 :(得分:0)

<com.google.android.material.button.MaterialButton
android:id="@+id/material_text_button"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/outlined_button_label_enabled"/>

您可以在属性下面进行更改。

app:cornerRadius app:backgroundTint

了解更多 Material Button official document