Android Button点击效果(按钮背景变色、文字变色)

一、 说明

Android Button的使用过程中,我们会需要为Button添加点击效果,不仅仅按钮的背景色需要变化,而且有时,我们连文字的颜色都希望变化,我们可以使用StateListDrawable资源可以实现。

二、 实现按钮点击的变化

2.1 实现效果:

2.2 我们首先需要定义按钮的背景的资源文件,我们使用图片资源来实现点击变化

selector_btn_click_bg.xml

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

    <item android:drawable="@drawable/load_cofirm_btn_normal" android:state_enabled="true" android:state_window_focused="false"/>
    <item android:drawable="@drawable/load_cofirm_btn_normal" android:state_enabled="false"/>
    <item android:drawable="@drawable/load_cofirm_btn_press" android:state_pressed="true"/>
    <item android:drawable="@drawable/load_cofirm_btn_normal" android:state_focused="true"/>

</selector>

2.2 关于按钮的文字变化,我们使用颜色资源,定义color.xml,注意,在里面加入以下自定义颜色(注意不是用color标签)的代码:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <drawable name="red">#f00</drawable>
    <drawable name="gray">#ccc</drawable>
</resources>

2.3 在res下新建drawable目录,里面新建selector_btn_click_bg.xml和selector_btn_click_text_color.xml文件,分别来设置按钮背景色和文字颜色

selector_btn_click_bg.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/load_cofirm_btn_normal" android:state_pressed="false"/>
    <item android:drawable="@drawable/load_cofirm_btn_normal" android:state_focused="false"/>
    <item android:drawable="@drawable/load_cofirm_btn_press" android:state_pressed="true"/>
    <item android:drawable="@drawable/load_cofirm_btn_press" android:state_focused="true"/>
</selector>

selector_btn_click_text_color.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="false" android:color="@drawable/red"/>
    <item android:state_focused="true" android:color="@drawable/gray"/>
    <item android:state_pressed="false" android:color="@drawable/red"/>
    <item android:state_press="true" android:color="@drawable/gray"/>
</selector>

2.4 在布局的按钮上,添家statelistdrawable修饰

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/selector_btn_click_bg"
        android:text="点击我啊,看我变一变"
        android:textColor="@drawable/selector_btn_click_text_color" />

运行程序,可看到我们想要的效果。

程序代码(免费):http://download.csdn.net/detail/zuiwuyuan/7975847

时间: 2025-01-21 12:51:32

Android Button点击效果(按钮背景变色、文字变色)的相关文章

Android自定义button点击效果的两种方式_Android

我们在界面上经常会用到button按钮,但通常button点击后看不到点击的效果,如果用户连续点击了两次,就会报NAR错误,这样交互性就比较差了.如果我们自定义了button点击效果,比如我们点击了button能让我们看到我们确实点击了button按钮,这样就会有效的避免重复点击了. 自定义点击效果有两种方式,一种是在xml中定义,另一种是在代码中定义. 首先看一下如何在xml中定义: 在drawable下新建selector.xml文件:          <?xml version="

Android自定义button点击效果的两种方式

我们在界面上经常会用到button按钮,但通常button点击后看不到点击的效果,如果用户连续点击了两次,就会报NAR错误,这样交互性就比较差了.如果我们自定义了button点击效果,比如我们点击了button能让我们看到我们确实点击了button按钮,这样就会有效的避免重复点击了. 自定义点击效果有两种方式,一种是在xml中定义,另一种是在代码中定义. 首先看一下如何在xml中定义: 在drawable下新建selector.xml文件: <?xml version="1.0"

基于Android实现点击某个按钮让菜单选项从按钮周围指定位置弹出_Android

Android Material Design:PopupMenu Android Material Design 引入的PopupMenu类似过去的上下文菜单,但是更灵活. 如图所示: 现在给出实现上图PopupMenu的代码. 本例是一个普通的Button触发弹出PopupMenu. 测试的MainActivity.java : package zhangphil.materialdesign; import android.app.Activity; import android.os.B

Android ViewGroup点击效果(背景色)

在开发Android应用的界面时,我们必然会用到本文ViewGroup,尤其是FrameLayout,LinearLayout,RelativeLayout等ViewGroup的子类: 在一些情况下,我们需要设置这些ViewGroup的点击效果,使用户获得更好的体验.下面介绍两种实现方法: 方法一:使用图片资源 通过为ViewGroup设置不同的图片图片资源,是最方便的实现方法,我们只需要设计两张图片,一张为非点击效果,另一张为点击时效果,然后为ViewGroup设置  background即可

Android TextView点击效果

在Android开发中,我们有时候需要单独的点击某一段文本,如图所示: 如上图,我们要求点击新用户注册这个TextView,为了有更好的用户体验,我们肯定要设置该TextView的点击效果.下面介绍如何实现: 1. 在res目录下,单独建立color目录,用于存放颜色点击效果的资源文件,在该目录下,新建文本点击效果的文件: selector_text_press_color.xml <?xml version="1.0" encoding="utf-8"?&g

android自定义button点击效果

package com.min.androidtest;      import android.app.Activity;   import android.content.Context;   import android.graphics.Canvas;   import android.graphics.Color;   import android.graphics.Paint;   import android.graphics.Rect;   import android.os.B

Android Nine Patch图片及按钮背景

NinePatchDrawable 绘画的是一个可以伸缩的位图图像,Android会自动调整 大小来容纳显示的内容.一个例子就是NinePatch为背景,使用标准的Android按 钮,按钮必须伸缩来容纳长度变化的字符 NinePatchDrawable 是一个标准的PNG图像,它包括额外的1个像素的边界, 你必须保存它后缀为.9.png,并且保持到工程的res/drawable目录中.如果你是 从 APK解压后得到的*.9.png文件,注意它是已将周围的空白像素去掉了的,在使 用时必须再加上.

Android Button点击事件的四种实现方法

Android中Button四种点击事件实现方式,具体内容如下 1.Xml添加监听属性,这里添加的doClick. <Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="doClick" android:text="XML添加d

Android之Button自定义点击效果

        我们在界面上经常会用到button按钮,但通常button点击后看不到点击的效果,如果用户连续点击了两次,就会报NAR错误,这样交互性就比较差了.如果我们自定义了button点击效果,比如我们点击了button能让我们看到我们确实点击了button按钮,这样就会有效的避免重复点击了.               自定义点击效果有两种方式,一种是在xml中定义,另一种是在代码中定义.              首先看一下如何在xml中定义:              在drawab