android 组件内部实现触摸事件,更改背景
2013-07-05 22:42
501 查看
当我们需要实现触摸事件的时候,通常就会想到OnTouchEvent这个方法,它能够获取触摸点的坐标,而组件同样也有这样的一个功能,使用这个功能,可以实现组件在父布局界面上移动,缩放,更改背景图片。这里通过一个小例子来实现利用组件的onTouchEvent事件实现点击组件左半部分更改左边图片,点击组件右半部分更改右边图片。
其实思路是很简单的。获取手电级的位置,如果组件是横向的,获取X坐标,如果小于组件的一半则认为是左边,如果大于一般则认为是右边。
下面是对于组件自己的移动
下面是布局的移动
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; } }
其实思路是很简单的。获取手电级的位置,如果组件是横向的,获取X坐标,如果小于组件的一半则认为是左边,如果大于一般则认为是右边。
下面是对于组件自己的移动
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开发小记--9】触摸事件---实现双指缩放图片
- android实现N滴雨(采用onTouchEvent触摸事件和线程)
- android之ImageButton实现选中改变背景,附加(图片自动适配组件大小)
- android之实现各个组件点击事件处理
- 易语言界面库的实现(四)组件内部事件处理
- Android 组件学习笔记(activity跳转,接口实现的点击事件)
- android之ImageButton实现选中改变背景,外加(图片自动适配组件大小)
- 07 手势识别器、UIImageView、(transform)、模拟button内部实现触摸事件
- android之实现各个组件点击事件处理
- android之实现各个组件点击事件处理
- Android 实现从本地读取图片更改聊天背景
- Android 判断触摸点是否在某个view内部,解决子childView与parentView的touch事件冲突
- Android列表组件ListView使用详解之屏幕触摸事件
- 通过在xml布局文件中设置android:onClick=""来实现组件单击事件
- Android View中触摸事件分发机制的实现
- android之实现各个组件点击事件监听
- Android中实现动态切换组件背景的操作