前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发之给你的Button加个背景

Android开发之给你的Button加个背景

作者头像
YungFan
发布2018-04-24 15:10:20
8540
发布2018-04-24 15:10:20
举报
文章被收录于专栏:学海无涯学海无涯

在Android应用中,绝大部分情况下,按钮都有按下变色的效果,这种效果主要都是借助于Android里面的 StateListDrawable来实现的,它可以设置多种状态,并分别为每种状态设置相应的drawable,这个drawable有两种方式来实现:1、准备多张图片 2、准备多个 ShapeDrawable。下面用第二种方式来实现一下按钮变色的效果。

一、准备两个ShapeDrawable

1、btn_shape.xml,正常状态下的背景图

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="5dp" />
    <solid android:color="@color/material_green" />
</shape>

2、btn_shape_press.xml ,按下状态下的背景图

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="5dp" />
    <solid android:color="@color/material_dark_green" />
</shape>

其中,corners:圆角度数, solid:填充色

二、准备StateListDrawable

btn_shape_press.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 触摸模式下单击时的背景图片-->
    <item android:drawable="@drawable/btn_shape_press" android:state_pressed="true" />
    <!-- 默认时的背景图片-->
    <item android:drawable="@drawable/btn_shape" />
</selector>  
三、将StateListDrawable设置为Button的背景
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_margin="20dp"
        android:background="@drawable/btn_selector"
        android:text="请按我,给你点颜色看看"
        android:textColor="@color/white"></Button>
</RelativeLayout>
测试效果

按钮点击变色.gif

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.05.03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、准备两个ShapeDrawable
  • 二、准备StateListDrawable
  • 三、将StateListDrawable设置为Button的背景
  • 测试效果
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档