双击灭屏功能

来源:互联网 发布:淘宝怎样微信支付 编辑:程序博客网 时间:2024/04/28 01:05

 

    // 双击灭屏用在onClick()方法中

    public voidonClick(View v) {

       checkDoubleTapToSleep(v,null);

    }

 

    // 双击灭屏用在onTouch()方法中

    public booleanonTouch(View v, MotionEvent event) {

       checkDoubleTapToSleep(v,event);

       return false;

    }

 

    private int mTapCount = 0;

    private long mFirstTapTime = 0l;

    private long mSecondTapTime = 0l;

    private HandlermDoubleTapResetHandler = new Handler() {

       @Override

       public voidhandleMessage(Message msg) {

           mTapCount = 0;

           mFirstTapTime = 0l;

           mSecondTapTime = 0l;

       }

 

    };

 

    private voidcheckDoubleTapToSleep(View v, MotionEvent event) {

       if (event ==null || event.getAction() == MotionEvent.ACTION_DOWN) {

           switch (++mTapCount){

           case 1:

              mFirstTapTime = System.currentTimeMillis();

              mDoubleTapResetHandler.removeMessages(0);

              mDoubleTapResetHandler.sendEmptyMessageDelayed(0,500);

              break;

           case 2:

              mSecondTapTime = System.currentTimeMillis();

              if (mSecondTapTime-mFirstTapTime < 500) {

                  PowerManagerpm = (PowerManager) mContext

                         .getSystemService(Context.POWER_SERVICE);

                  pm.goToSleep(SystemClock.uptimeMillis());

                  mDoubleTapResetHandler.removeMessages(0);

                  mDoubleTapResetHandler.sendEmptyMessage(0);

              }

              break;

           default:

              break;

           }

       }

    }

 

0 0
原创粉丝点击