首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Android更改默认按钮背景颜色

Android更改默认按钮背景颜色
EN

Stack Overflow用户
提问于 2014-08-24 02:49:56
回答 3查看 4.9K关注 0票数 1

我试着改变按钮的背景颜色(默认,按下和焦点),但我找不到一个好的方法。我读过很多关于设计buuton风格的帖子,但不幸的是,这些帖子是为了创造一种有竞争力的新风格。我想保持所有的东西都一样,除了背景颜色。

我更喜欢使用xml,因为我对多个活动使用单个布局。我也在寻找一种适用于Android4.0和4.0以下版本的解决方案。

有人能帮帮我吗?

EN

回答 3

Stack Overflow用户

发布于 2019-05-22 14:35:45

如果你想在不丢失阴影的情况下改变默认按钮的颜色,那么我建议你改变所需按钮的样式。

您只需将此行添加到button标记即可完成此操作

代码语言:javascript
运行
复制
            style="@style/Widget.AppCompat.Button.Colored"

示例代码将如下所示

代码语言:javascript
运行
复制
 <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/Widget.AppCompat.Button.Colored"
            android:text="Rate now"/>

现在,在res->values->colors.xml文件下的color.xml中将colorAccent更改为所需的颜色。

代码语言:javascript
运行
复制
<color name="colorAccent">your color here</color>

您可以访问官方开发人员页面获取更多信息Styling buttons

票数 2
EN

Stack Overflow用户

发布于 2014-08-24 02:57:44

使用您想要的按钮设置创建一个button_style.xml,如下例所示,并将此文件放入res文件夹下的drawable文件夹中。

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <gradient
                android:startColor="@color/MyButtonDarkGray"
                android:endColor="@color/MyButtonDarkGray"
                android:angle="270" />
            <stroke
                android:width="0dp"
                android:color="@color/Gray" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item android:state_focused="true" >
        <shape>
            <gradient
                android:endColor="@color/Green"
                android:startColor="@color/Green"
                android:angle="270" />
            <stroke
                android:width="0dp"
                android:color="@color/Gray" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item>        
        <shape>
            <gradient
                android:endColor="@color/green_leaf_top"
                android:startColor="@color/green_leaf_bottom"
                android:angle="270" />
            <stroke
                android:width="0dp"
                android:color="@color/Gray" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

</selector>

现在,在res\values文件夹下的styles.xml中,添加

代码语言:javascript
运行
复制
<style name="button" parent="@android:style/Widget.Button">
    <item name="android:background">@drawable/button_style</item>
</style>

此样式仅适用于您的所有按钮。

注意:颜色在res\values\colors.xml中是单独定义的,您可以使用自己的颜色。

票数 1
EN

Stack Overflow用户

发布于 2014-08-24 02:55:24

下面是一个用于根据按钮状态更改颜色的xml:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="false"
        android:drawable="@android:color/black" />
    <item
        android:state_pressed="true"
        android:state_enabled="true"
        android:drawable="@android:color/holo_orange_dark" />
    <item
        android:state_focused="true"
        android:state_enabled="true"
        android:drawable="@android:color/holo_green_dark" />
    <item
        android:state_enabled="true"
        android:drawable="@android:color/holo_blue_bright" />
</selector>

在java代码中设置可提取的资源,如下所示:

代码语言:javascript
运行
复制
Button btn = (Button) findViewById(R.id.btn1);
btn.setBackground(this.getResources().getDrawable(R.drawable.mydrawable));

在xml中,将可绘制内容设置为xml中按钮的背景:

代码语言:javascript
运行
复制
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/mydrawable" />

注意:您可以在java代码或xml中进行设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25465302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档