android处理双击事件
2012-03-20 23:20
381 查看
http://www.2cto.com/kf/201109/102375.html
需求:一些透明的button 用来处理软件环境的改变
http://blog.csdn.net/wwang196988/article/details/6790635
需求:一些透明的button 用来处理软件环境的改变
//计算点击的次数 private int count; //第一次点击的时间 long型 private long firstClick; //最后一次点击的时间 private long lastClick; //第一次点击的button的id private int firstId; //调试环境是否开启 private boolean isDebugOpen = false; //日志环境是否开启 private boolean isLogOpen = false; private class ButtonOnTouchListener implements OnTouchListener{ @Override public boolean onTouch(View v, MotionEvent event) { if(event.getAction()==MotionEvent.ACTION_DOWN){ //如果第二次点击 距离第一次点击时间过长 那么将第二次点击看为第一次点击 if(firstClick!=0 && firstId!=0 && System.currentTimeMillis()-firstClick>300){ count = 0; firstId = 0; } count++; if(count==1){ firstClick = System.currentTimeMillis(); //记录第一次点得按钮的id firstId = v.getId(); }else if(count==2){ lastClick = System.currentTimeMillis(); //两次点击小于300ms 也就是连续点击 if(lastClick-firstClick<300){ //第二次点击的button的id int id = v.getId(); //判断两次点击的button是否是同一个button if(id == firstId){ Log.v("-----Double Click-----","btn_LeftKey"); //根据ID值的处理函数 switch(id){ case R.id.leftUp: break; case R.id.rightUp: break; //... } } } clear(); } } return false; } //清空状态 private void clear(){ count = 0; firstClick = 0; lastClick = 0; firstId = 0; } }
http://blog.csdn.net/wwang196988/article/details/6790635
// 计算点击的次数 private int count = 0; // 第一次点击的时间 long型 private long firstClick = 0; // 最后一次点击的时间 private long lastClick = 0; private ButtonOnTouchListener listener = new ButtonOnTouchListener(); private class ButtonOnTouchListener implements OnTouchListener { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { // 如果第二次点击 距离第一次点击时间过长 那么将第二次点击看为第一次点击 if (firstClick != 0 && System.currentTimeMillis() - firstClick > 500) { count = 0; } count++; if (count == 1) { firstClick = System.currentTimeMillis(); } else if (count == 2) { lastClick = System.currentTimeMillis(); // 两次点击小于500ms 也就是连续点击 if (lastClick - firstClick < 500) { //Log.v("Double", "Double"); if (vv.isScale()) { vv.setScale(false); } else { vv.setScale(true); } } clear(); } } return false; // 清空状态 private void clear() { count = 0; firstClick = 0; lastClick = 0; } }
相关文章推荐
- 处理Android中双击事件
- android 处理双击事件
- android 处理双击事件
- js实现对Android设备物理返回键单击/双击事件处理(Framework7框架)
- android 处理双击事件
- android 处理双击事件监听
- android处理单击双击和滑动事件
- android处理单击双击和滑动事件
- Android 中如何处理双击事件
- Android长按事件和点击事件问题处理,OnItemLongClickListener和OnItemClickListener冲突问题
- android 事件处理
- android 事件处理机制之requestDisallowInterceptTouchEvent
- 从源码角度分析android事件分发处理机制
- Android开发指南-用户界面-事件处理
- Android事件处理
- android(基于监听)的事件处理
- android广播事件处理二
- Android自定义View滑动事件处理总结
- Android事件处理的两种模型
- android dialog在activity中,如何处理activity捕捉不到back点击事件