【问题标题】:Change background color of Button in Android在Android中更改按钮的背景颜色
【发布时间】:2021-03-18 10:31:47
【问题描述】:

我正在尝试更改按钮的颜色,但它不起作用。

btn_sign_in.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="23dp" />
    <size android:height="16dp" />
    <solid android:color="#045762" />
</shape>

我在按钮 xml 中给出了android:background="@drawable/btn_sign_in"

【问题讨论】:

标签: java android android-button material-components-android


【解决方案1】:

您好,您尝试过app:backgroundTint="#045762",这在可能的情况下会起作用,但如果您必须使用可绘制对象,请执行此操作

app:backgroundTint="@null"
android:background="@drawable/btn_sign_in"

当使用 MaterialComponents 时,背景色调将优先于背景,在您的情况下,您可以尝试将颜色直接作为 backgroundTint 传递

还可以从 MaterialComponents 中查看 MaterialButton

【讨论】:

  • 我还需要为按钮提供高度,为按钮提供高度似乎不起作用
  • 你可以在 material.io/develop/android/components/buttons 中为 MaterialButton 提供高度,默认情况下,Material 按钮已经应用了高度和 inSet
【解决方案2】:

你可以像这样改变背景颜色。

<Button
    android:background="@android:color/green"
    android:textColor="@android:color/white" />

【讨论】:

    【解决方案3】:

    XML:

    <Button
    android:background="@android:color/white"
    android:textColor="@android:color/black"/>
    

    以编程方式:

    btn.setBackgroundColor(Color.WHITE);
    btn.setTextColor(Color.BLACK);
    

    【讨论】:

      【解决方案4】:

      您无需使用自定义背景。
      只需使用:

          <com.google.android.material.button.MaterialButton
              app:cornerRadius="23dp"
              app:backgroundTint="#045762"
              android:text="BUTTON"
              .../>
      

      【讨论】:

      • 那行得通。我也需要为按钮提供阴影。给予海拔似乎不起作用。还有其他方法吗?
      • 使用app:elevation 而不是android:elevation
      猜你喜欢
      • 2021-07-05
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 2015-04-03
      相关资源
      最近更新 更多