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
Android Button点击效果(按钮背景变色、文字变色)的更多相关文章
- android selector设置button点击效果(具体)以及常见问题
button的点击效果学习起来其实比較easy,此点对开发人员来说也是使用的比較频繁的一个知识点,与它相关的还有编辑框的获取焦点时改变背景颜色.选择button选择时改变字体颜色等等.这些其实都是用到 ...
- [Android]Button按下后修改背景图
Button按下后修改背景图 错误做法:为Button添加OnTouch事件监听,根据ACTION_UP和ACTION_DOWN动作来修改Button的背景图 错误原因:从理论上讲,按钮按下修改背景色 ...
- Android ImageView点击效果
ImageView设置点击效果需要注意两点,第一个设置android:clickable="true",第二个 <item android:drawable="@d ...
- Android TextView点击效果
在Android开发中,我们有时候需要单独的点击某一段文本,如图所示: 如上图,我们要求点击新用户注册这个TextView,为了有更好的用户体验,我们肯定要设置该TextView的点击效果.下面介绍如 ...
- Android ViewGroup点击效果(背景色)
在开发Android应用的界面时,我们必然会用到本文ViewGroup,尤其是FrameLayout,LinearLayout,RelativeLayout等ViewGroup的子类: 在一些情况下, ...
- android radiogroup样式(设置切换背景与文字颜色)
main.xml <RadioGroup android:id="@+id/radioGroup1" android:layout_width="wrap_cont ...
- Android 学习笔记一 自定义按钮背景图
入门学到的一些组件都是比较规矩的,但在实际应用中,我们需要更多特色的组件,例如一个简单的Button,所以我们必须要自定义它的属性. 遇到的问题:用两张图片来代替按钮,分别表示点击前后 解决方法:用I ...
- Android用户点击返回按钮两次退出整个APP
最近的APP项目有一个需求就是连续点击两次返回按钮,退出整个APP,而不是返回到上一个页面,这个连续是有时间限制的,在我的项目里,我设置成2秒钟,如果两秒之内点击了两次,就代表用户想要退出整个APP, ...
- Android点击Button水波纹效果
先上图,看看接下来我要向大家介绍的是个什么东西,例如以下图: 接下来要介绍的就是怎样实现上述图中的波纹效果.这样的效果假设大家没有体验过的话,能够看看百度手机卫士或者360手机卫士,里面的按钮点击效果 ...
随机推荐
- 使用Data Lake Analytics + OSS分析CSV格式的TPC-H数据集
0. Data Lake Analytics(DLA)简介 关于Data Lake的概念,更多阅读可以参考:https://en.wikipedia.org/wiki/Data_lake 以及AWS和 ...
- Python操作SQLite数据库的方法详解
Python操作SQLite数据库的方法详解 本文实例讲述了Python操作SQLite数据库的方法.分享给大家供大家参考,具体如下: SQLite简单介绍 SQLite数据库是一款非常小巧的嵌入式开 ...
- arcgis访问百度地图
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- css3烟花效果
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 第二周<导学/分类>
分类学习 分类算法各有不同 knn naivebyes regression dnn sklearn.linear_modlel 线性函数 sklearn.preprocessing 非线性函数 分类 ...
- vue中element-ui添加按钮
<div v-for="(v,i) in list"> <el-form label-width="120px" size="sma ...
- LeetCode136 Single Number, LeetCode137 Single Number II, LeetCode260 Single Number III
136. Single Number Given an array of integers, every element appears twice except for one. Find that ...
- 【JZOJ3852】【NOIP2014八校联考第2场第2试9.28】单词接龙(words)
DDD Bsny从字典挑出N个单词,并设计了接龙游戏,只要一个单词的最后两个字母和另一个单词的前两个字母相同,那么这两个单词就可以有序的连接起来. Bsny想要知道在所给的所有单词中能否按照上述方式接 ...
- 2019.10.22 用TCP实现服务端并发接收
client import socket client = socket.socket() client.connect( ('127.0.0.1',8888) ) while 1: msg = in ...
- MAC+VS Code+Python+Markdown调试配置
目录 VS Code官网下载 VS Code插件推荐 VS Code Python环境配置 Markdown配置 VS Code官方文档 VS Code官网下载 VS Code官网下载地址 VS Co ...