欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

Android监听连续点击次数代码实现,android点击次数,一般实现 我们知道,一

来源: javaer 分享于  点击 34322 次 点评:215

Android监听连续点击次数代码实现,android点击次数,一般实现 我们知道,一


一般实现 我们知道,一般实现双击事件,可以通过new OnClickListener()监听点击事件,然后记录前后两次点击距离开机的时间,由时间差在一定范围实现,代码如下:

        long firstClickTime = 0;      @Override      public void onClick(View view) {          if(firstClickTime > 0){              long secondClickTime = SystemClock.uptimeMillis();//距离上次开机时间              long dtime = secondClickTime - firstClickTime;              if(dtime > 500){                  Toast.makeText(getApplicationContext(), "实现双击事件监听", 0).show();              } else{                  firstClickTime = 0;              }              return ;           }          firstClickTime = SystemClock.uptimeMillis();      }  

Google实现算法 看完上面实现,思路很简单,但是当要实现多次点击时,那上面的可能就代码量很大了,这里写下GoogleAPI提供的方法

//数组存储点击次数              long[] mHits = new long[2];              @Override              public void onClick(View v) {                  //实现双击方法                  //src 拷贝的源数组                  //srcPos 从源数组的那个位置开始拷贝.                  //dst 目标数组                  //dstPos 从目标数组的那个位子开始写数据                  //length 拷贝的元素的个数                  System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);                  //实现左移,然后最后一个位置更新距离开机的时间,如果最后一个时间和最开始时间小于500,即双击                  mHits[mHits.length - 1] = SystemClock.uptimeMillis();                  if (mHits[0] >= (SystemClock.uptimeMillis() - 500)) {                      // 双击居中了。。。屏幕的一半和归属地的一半,更新窗口,保存lastX                      params.x = wm.getDefaultDisplay().getWidth()/2-view.getWidth()/2;                      wm.updateViewLayout(view, params);                      Editor editor = sp.edit();                      editor.putInt("lastx", params.x);                      editor.commit();                  }              }  
相关栏目:

用户点评