【问题标题】:Anroid i try change my butten background colour by drawable xml fileAndroid 我尝试通过可绘制的 xml 文件更改按钮背景颜色
【发布时间】:2021-06-29 11:49:12
【问题描述】:

我尝试通过可绘制的 xml 文件设计butten 角落工作正常但颜色工作不正常

<Button
            android:layout_width="180dp"
            android:layout_height="wrap_content"
            android:background="@drawable/but_draw"
            android:text="Login"
            android:textSize="14dp"
            android:layout_gravity="center"
            android:layout_marginTop="20dp"/>
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="purple_200">#FFBB86FC</color>
    <color name="purple_500">#FF6200EE</color>
    <color name="purple_700">#FF3700B3</color>
    <color name="teal_200">#FF03DAC5</color>
    <color name="teal_700">#FF018786</color>
    <color name="black">#FF000000</color>
    <color name="white">#FFFFFFFF</color>
    <color name="purple">#564999</color>
    <color name="blue">#59b7e0</color>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/blue"/>
    <corners android:radius="15dp"/>
</shape>

【问题讨论】:

    标签: java android xml android-button android-theme


    【解决方案1】:

    简短回答。
    使用类似的东西:

       <Button
          app:backgroundTint="@null"
          android:background="@drawable/but_draw"
          ../>
    

    更好

        <Button
            app:cornerRadius="15dp"
            app:backgroundTint="@color/blue"
            ../>
            
    

    长答案。
    ButtonMaterialButton 替换,因为您使用的是 Theme.MaterialComponents.* 主题,并且自定义背景使用主题中定义的 ?attr/colorPrimary 着色。

    在您的情况下,您仅使用自定义背景来定义圆角。此功能默认MaterialButton提供,然后只需使用cornerRadius属性即可。

    【讨论】:

      【解决方案2】:

      替换这个

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

      用这个:

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

      【讨论】:

        【解决方案3】:

        只需使用 backgroundTint。背景属性据了解是一种 已弃用

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-07-05
          • 2013-10-24
          • 1970-01-01
          • 2020-11-12
          • 2019-05-06
          • 1970-01-01
          • 2015-06-04
          • 1970-01-01
          相关资源
          最近更新 更多