Android进阶——双击,三击和多击的实现
来源:互联网 发布:网络教育统考不通过率 编辑:程序博客网 时间:2024/05/29 08:36
双击:
先来看简单的实现方式
private void initView() { // 找到按钮控件 btn = (Button) findViewById(R.id.button); // 设置点击事件监听 btn.setOnClickListener(this); } //初始化第一次点击的标记 long fristTime=0; @Override public void onClick(View v) { if (fristTime == 0) { fristTime = System.currentTimeMillis();//获取第一次点击的时间 new Thread() { public void run() { try { Thread.sleep(500); fristTime = 0;//为双击做准备 } catch (InterruptedException e) { e.printStackTrace(); } } }.start(); } else { long secondTime = System.currentTimeMillis();//获取第二次点击的时间 if (secondTime - fristTime < 500) { System.out.println("我被双击了。。。"); fristTime = 0;//为下次双击做准备 } } }
三击:
同理,用上面这种方式也能实现三击,只是麻烦了些。参考Google,安卓手机中在查看安卓系统版本的地方,三击或者多击会出现彩蛋,可以借鉴其源码进行实现。
//利用数组来存储时间 long[] mHits = new long[3]; @Override public void onClick(View v) { // arraycopy 拷贝数组 /* 参数解读如下: * src the source array to copy the content. 拷贝哪个数组 *srcPos the starting index of the content in src. 从原数组中的哪里开始拷贝 *dst the destination array to copy the data into. 拷贝到哪个数组 *dstPos the starting index for the copied content in dst. 从目标数组的那个位置开始去写 *length the number of elements to be copied. 拷贝的长度 */ System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1); //获取离开机的时间 mHits[mHits.length - 1] = SystemClock.uptimeMillis(); //单击时间的间隔,以500毫秒为临界值 if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) { System.out.println("我被三击了。。。"); //一个三击(双击或多击事件完成), //把数组置为空并重写初始化,为下一次三击(双击或多击)做准备 mHits = null; mHits = new long[3]; } }
多击:
我们只需把数组的长度进行相应的更改,例如,把 new long[3]中的3改为2 或者其它数字 ,即可实现双击或多击的功能。
2 0
- Android进阶——双击,三击和多击的实现
- Android进阶-双击&多击事件
- 双击和多击事件的实现
- 按钮的双击和三击
- Android中双击、三击以及多击的判定
- Android中View的双击,多击实现方法
- 安卓控件双击和多击事件的实现
- Android中双击,三击事件的响应代码
- swing处理双击和三击事件的方法
- 双击事件和三击事件
- Android 实现双击退出 支持多击/自定义延迟时间
- Android双击事件的实现
- android 双击事件的实现
- Android双击以及多击事件
- Android双击或多击事件
- 【 简单实现双击,3击,...N击 】Android系统源码
- 我的Android进阶之旅------>Android实现用Android手机控制PC端的关机和重启的功能(三)Android客户端功能实现
- Android framework 中双击 home 的实现
- UIView常见属性方法
- Junit测试含有‘启动新线程’这一操作的方法时瞬间结束的问题
- MySQL MERGE存储引擎 简介
- 《JAVA与模式》之模板方法模式
- 可行性分析
- Android进阶——双击,三击和多击的实现
- 多表查询
- MySQL存储引擎总结
- @PathVariable-------springMVC
- Linux curses 总结三(对键盘的操作)
- web.xml配置详解
- C#中DataTable的使用
- Android滑动删除activity
- ubuntu virtualbox安装win10虚拟机 共享文件夹