android 组件内部实现触摸事件,更改背景
来源:互联网 发布:剑三成男捏脸数据图片 编辑:程序博客网 时间:2024/06/06 06:29
当我们需要实现触摸事件的时候,通常就会想到OnTouchEvent这个方法,它能够获取触摸点的坐标,而组件同样也有这样的一个功能,使用这个功能,可以实现组件在父布局界面上移动,缩放,更改背景图片。这里通过一个小例子来实现利用组件的onTouchEvent事件实现点击组件左半部分更改左边图片,点击组件右半部分更改右边图片。
if (v == CamMove_UD_Btn) {if (event.getAction() == MotionEvent.ACTION_DOWN) {if (event.getX() <= btn_in_bottom_width_center) { //这个是组件宽度的一半CamMove_UD_Btn.setBackgroundResource(R.drawable.cam_up);}else {CamMove_UD_Btn.setBackgroundResource(R.drawable.cam_down);}CamMove_UD_Btn_Click = true;//使用这个变量的目的就是:有时手指从水平位置滑动到组件到,没有检测到Down事件,但是松开手后就会检测到UP}else if (CamMove_UD_Btn_Click && event.getAction() == MotionEvent.ACTION_UP) {CamMove_UD_Btn.setBackgroundResource(R.drawable.cam_off);CamMove_UD_Btn_Click = false;}}
下面是对于组件自己的移动
imagebutton.setOnTouchListener(new OnTouchListener() { int[] postion = new int[] { 0, 0 }; @Override public boolean onTouch(View v, MotionEvent event) { int x = (int) event.getRawX(); int y = (int) event.getRawY(); int left = v.getLeft(); int top = v.getTop(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: postion[0] = (int) event.getX(); postion[1] = y - v.getTop(); break; case MotionEvent.ACTION_MOVE: v.layout(x - postion[0], y - postion[1], x + 1024 - postion[0], y - postion[1] + 768); v.postInvalidate(); default:break; } return false; } });
x=x+10; y=y+10; LayoutParams layoutParams=mIconPinpu.getLayoutParams(); //获取布局的布局参数 layoutParams.height=x; layoutParams.width=y; mIconPinpu.setLayoutParams(layoutParams);
- android 组件内部实现触摸事件,更改背景
- Android中使用触摸事件实现Selsetor按下时改变按钮背景
- Android触摸事件进行画图简单实现
- Android 实现ListView 内部的点击事件
- Android:处理触摸事件
- android 触摸事件
- Android Touch 触摸事件
- android触摸事件传递
- Android 触摸事件大全
- android触摸语音事件
- android的触摸事件
- Android 手势&触摸事件
- Android 手势&触摸事件
- Android触摸事件传递
- Android 手势&触摸事件
- Android触摸事件机制
- 获取android触摸事件
- Android触摸事件机制
- RMAN
- Android开发:日期格式化
- 题目1001:A+B for Matrices
- NS2跨层设计
- Create Table DDL sample(TSQL)
- android 组件内部实现触摸事件,更改背景
- apache cxf解析webservice
- 给软件工程师的自学建议
- gcc -I -L -l区别
- 每个程序员都应该知道的那些事儿
- android中Preference(首选项)2--(组织首选项)
- Failed to create the Java Virtual Machine
- Pthreads并行编程之spin lock与mutex性能对比分析
- 邮件发送代码