当前位置: 首页 > 知识库问答 >
问题:

使用AppCompat在Android中为按钮着色

耿运浩
2023-03-14

有人知道如何更改按钮颜色吗?

但是一个特定的按钮,而不是应用程序的所有按钮都使用XML。

即使使用AppCompat库,android:backgroundTint属性在Lollipop前也不起作用。只有主题中的彩色按钮normal可以在Lollipop前使用。

这是真的吗?真遗憾

我正在使用这个可绘制的按钮(简单的绿色),但当我使用按钮时,发现它比普通按钮高。

这是btn\u green文件。xml

<?xml version="1.0" encoding="utf-8"?>
<item android:state_pressed="true"><shape>
        <solid android:color="#ff5722" />

        <corners android:radius="4dp" />
    </shape></item>
<item android:state_focused="true"><shape android:shape="rectangle">
        <solid android:color="#4caf50" />

        <corners android:radius="4dip" />

        <stroke android:width="1dip" android:color="#F0FC00" />
    </shape></item>
<item><shape>
        <solid android:color="#4caf50" />

        <corners android:radius="4dp" />
    </shape></item>

按钮是这样的:

            <android.support.v7.widget.AppCompatButton
            android:id="@+id/btnIngresar"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/btn_green"
            android:text="Hello"
            android:textStyle="bold" />

当我使用drawable时,按钮比普通按钮高(没有drawable),我不知道为什么。

共有2个答案

解阳泽
2023-03-14

有一种方法可以在pre-lollipop设备中设置背景色调。试试这个:<代码>按钮。设置SupportBackgroundTintList(getResources())。getColorStateList(R.color.accentColor)) 参考这个答案:Lollipop的背景色对按钮没有影响

殳自怡
2023-03-14

如果您想要以下样式

将此样式添加到您的按钮

style="@style/Widget.AppCompat.Button.Borderless.Colored"

如果你想要这种风格

添加下面的代码

style="@style/Widget.AppCompat.Button.Colored"
 类似资料:
  • 我需要知道使用最新的AppCompat(目前为23.2.1)为材质按钮(AppCompatButton)着色的最佳(推荐)方法是什么。我从来没有想到会如此令人沮丧!我尝试了这里的大多数答案,但要么不起作用,要么产生了意想不到的结果。 我需要保持与api的向后兼容性 如果您能同时提供xml和java代码,我将不胜感激。

  • 我想创建一个浮动动作按钮(添加项目到列表视图),就像谷歌日历,保持与Lollipop之前的Android版本(5.0之前)的兼容性。 我创建了这个布局: 活动main_activity.xml: 如何向按钮添加底纹? 我已经使用了属性提升,但不起作用

  • 我四处寻找了一种处理android 5.0中按钮背景色的正确方法,我能找到的唯一解决方案是在values-21/styles中定义按钮的样式。xml: 这是为按钮着色的唯一方法,同时保留其设计和连锁反应吗?如果是的话,这意味着我必须为每个有不同颜色的按钮定义一个自定义主题,真的吗??? 注意:我的问题与向后兼容性和AppCompat无关,这已经讨论了很多。

  • 我使用此样式更改的背景颜色: 在布局中: 它起作用了。但是当我在这个上调用时,它保持相同的颜色。我怎么处理这个案子?

  • 我不能点击运行按钮。有人知道怎么修吗?