Android_UI_点击按钮切换背景效果实现
实现按钮按下和释放,按钮背景图片相应切换效果的方法这里介绍两种,一种是在代码里实现,另一种是在xml文件里实现
一、在xml文件里
首先现在layout的一个xml文件下定义Button如下所示:
- <Button
- android:id="@+id/btn_user_selected"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:background="@drawable/btn_selected/>
注意代码里的android:background="@drawable/
btn_selected
",这里
btn_selected是drawable文件下定义button按下释放效果的xml文件
接下来看btn_selected.xml文件的定义:
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android" >
- <!-- 获得焦点但未按下时的背景图片 -->
- <item android:state_focused="true" android:state_enabled="true" android:state_pressed="false" android:drawable="@drawable/user_selecte_n" />
- <!-- 按下时的背景图片 -->
- <item android:state_enabled="true" android:state_pressed="true" android:drawable="@drawable/user_selecte_p" />
- <!-- 按下时的背景图片 -->
- <item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/user_selecte_p" />
- <!-- 默认时的背景图片 -->
- <item android:drawable="@drawable/user_selecte_n" />
- </selector>
创建xml:点击drawable文件夹右键-->new-->Android XML File-->在File栏里填写xml名称-->Root Element下选择xml的背景选择器selector-->点击finish-->创建成功
相关属性:
android:state_selected :选中
android:state_focused :获得焦点
android:state_pressed :点击
android:state_enabled :设置是否响应事件,指所有事件
selector背景选择器用法大全请跳转到:点击打开链接
二、在java代码里
- bottomReturnBtn.setOnTouchListener(new OnTouchListener() {
- public boolean onTouch(View v, MotionEvent event) {
- Button upStepBtn = (Button) v;
- if(event.getAction() == MotionEvent.ACTION_DOWN){
- upStepBtn.setBackgroundResource(R.drawable.bottom_sub_order_btn);
- }else if(event.getAction() == MotionEvent.ACTION_UP){
- upStepBtn.setBackgroundResource(R.drawable.bottom_return_check);
- finish();
- }
- return false;
- }
- });
通过监听按钮的不同状态来更改按钮的背景图片
public boolean onTouch(View v,MotionEvent event){
}
参数v:事件源对象
参数event:事件封装类的对象,其中封装了触发事件的详细信息,同样包括事件的类型、触发时间等信息。
event.getAction() == MotionEvent.ACTION_DOWN ======>按钮被按下
event.getAction() == MotionEvent.ACTION_UP ======>按钮被释放
Android_UI_点击按钮切换背景效果实现的更多相关文章
- JQuery实现点击按钮切换图片(附源码)--JQuery基础
JQuery实现切换图片相对比较简单,直接贴代码了哈,有注释噢!疑问请追加评论哈,不足之处还请大佬们指出! 1.案例代码: demo.html: <!DOCTYPE html><ht ...
- JAVA Eclipse如何设置点击按钮切换图片
右击图片文件夹,新建一个Android XML文件 设置文件的名称,注意这个新建的xml文件就是会被用作按钮的background属性的,所以名字不要太奇怪,设置Root Element为sele ...
- c# winform 点击按钮切换tabcontrol标签
this.tabControl1.TabPages.Remove(tabPage1); this.tabControl1.TabPages.Remove(tabPage2); this.tabCont ...
- JQuery移动动画实现点击按钮切换图片--JQuery基础
直接贴源码了哈,这些都是自己总结的……汗水几何?希望能帮到大家. <%@ Page Language="C#" AutoEventWireup="true" ...
- 原生js点击按钮切换图片
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- javascript总结36:DOM-点击按钮切换图片案例
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- C#中如何通过点击按钮切换窗口
实现方法如下: 1.设计 首先在左侧放一个panel,右侧放一个panel(命名为pnlMain),调整大小,在左侧panel里放置两个按钮(多个按钮同理) 2.在按钮里面写方法 在[命名规范检查] ...
- 点击按钮切换内容效果(使用CSS DIV与JavaScript)
<head><script type="text/javascript">function change_div(id){ if (id == 'gsyw ...
- Android--ViewPager点击按钮切换下一页
不再重写一遍了,看csdn: https://blog.csdn.net/qq_42866164/article/details/101346058
随机推荐
- 51nod1476 括号序列的最小代价
这题应该可以用费用流写吧?不过我想不出贪心来TAT.其实还是单调队列乱搞啊T_T //ÍøÉϵÄ̰ÐÄËã·¨ºÃÉñ°¡¡£¡£¡£ÎÒÖ»»áÓÃ×îС·ÑÓÃ×î´óÁ÷ÅÜTAT #in ...
- How to begin with the webpage making
1.网页制作三剑客必须要会使用.(dreamweaver /fireworks/flash)2.学习些最基层的html语言的知识,3.在学习一些基本的html标签(要多加练习哦)4.先试着用表格进行 ...
- IOS中tableView每组的头部控件、通过tableView的代理方法控制某一行的cell能否达到高亮选中状态
一.tableView每组的头部控件 1.控件宽度默认就是tableView的宽度 2.控件高度由下面的代理方法决定 - (CGFloat)tableView:(UITableView *)table ...
- WM8962 HPOUT 信号强度 时间周期
/*************************************************************************** * WM8962 HPOUT 信号强度 时间周 ...
- python练习程序(c100经典例16)
题目: 输入两个正整数m和n,求其最大公约数和最小公倍数. def foo(a,b): if a<b: (a,b)=(b,a) aa=a; bb=b; while b!=0: tmp=a%b; ...
- (六) 6.1 Neurons Networks Representation
面对复杂的非线性可分的样本是,使用浅层分类器如Logistic等需要对样本进行复杂的映射,使得样本在映射后的空间是线性可分的,但在原始空间,分类边界可能是复杂的曲线.比如下图的样本只是在2维情形下的示 ...
- Cadence Allegro导网表的错误问题解决
在Allegro导入网表的时候,有时候会出现这样一个错误问题,如下: ------ Oversights/Warnings/Errors ------ #1 ERROR(SPMHNI-235): ...
- Android源码分析--CircleImageView 源码详解
源码地址为 https://github.com/hdodenhof/CircleImageView 实际上就是一个圆形的imageview 的自定义控件.代码写的很优雅,实现效果也很好, 特此分析. ...
- 模式自由(Schema-free)和数据存储的非格式化趋势
最近遐想,数据存储的非格式化趋势. 格式化表格到自由的XML存储 数年以前,多家数据库厂商开始XML数据库存储.XML数据作为一种自描述的半结构化数据为Web的数据管理提供了新的数据模型,如果将XML ...
- 实现两个N*N矩阵的乘法,矩阵由一维数组表示
实现两个N*N矩阵的乘法,矩阵由一维数组表示. 先介绍一下矩阵的加法: void Add(int rows, int cols) { ;i<rows;i++) { ;j<cols;j++) ...