Android自定义按钮样式和背景

1 需求

开发android应用时,默认的按钮样式,往往不能满足项目的主题、配色的需要。因此要对其进行修改、美化。暂时学习到的两种方式是统一设置自定义背景、自定义样式。


默认按钮样式

2 自定义背景

在项目drawable目录下新建button_blue_background按钮背景自定义资源文件:

新建自定义背景button_blue_background

文件代码如下(可根据需要自行调整):
button_blue_background.xml :

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="false">
        <shape>
            <solid android:color="#278BE0"></solid>
            <corners android:radius="3dp"></corners>
            <stroke android:width="0dp"></stroke>
        </shape>
    </item>

    <item android:state_pressed="true">
        <shape>
            <solid android:color="#4DA0E8"></solid>
            <corners android:radius="3dp"></corners>
            <stroke android:width="0dp"></stroke>
        </shape>
    </item>



</selector>

在布局文件中引用该自定义背景:

<Button android:id="@+id/btn_cancel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:text="取消"
            android:background="@drawable/button_blue_background"/>

效果如下图:


自定义背景效果

Button高度和字体颜色可根据需要再进行其他调整。

3 自定义样式

通过自定义样式,可以更方便、更多的操作按钮的样式和布局。首先,打开res/drawable/values/styles.xml文件,在其中resources节点下添加button_blue_style结点。


添加自定义按钮样式到styles文件

代码如下:

<style name="button_blue_style">
        <item name="android:textColor">#FFFFFF</item>
        <item name="android:background">@drawable/button_blue_background</item>
    </style>

代码中引用了上一节编写的自定义背景文件@drawable/button_blue_background。在布局中引用方式如下:

<Button android:id="@+id/btn_cancel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_weight="1"
            android:text="取消"
            style="@style/button_blue_style"/>

运行后,效果如下图:


自定义样式效果

按钮高度太高,是因为按钮默认具有minWidth、minHeight属性,将其置为0,设置高度为30dp.

<style name="button_blue_style">
        <item name="android:textColor">#FFFFFF</item>
        <item name="android:background">@drawable/button_blue_background</item>
        <item name="android:minWidth">0dp</item>
        <item name="android:minHeight">0dp</item>
        <item name="android:height">30dp</item>
    </style>

最终效果如下图所示:


最终效果
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,057评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,000评论 2 59
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,205评论 3 119
  • 下面是最近在前端面试工作中,结合公司的业务需求,定的针对前端招聘不同等级的要求: 笔试 算法题考试 初级 1, j...
    技术与健康阅读 260评论 1 1
  • 一天早上我醒来时,发现自己的床头放着一盏很古老的灯,我以为它是一盏我父亲小时候用的煤油灯,所以就没把它当成一回事。...
    明天_6fc9阅读 328评论 0 0

友情链接更多精彩内容