Пример #1
0
  private void initFloatviews() {

    mManager.setBtnGestureListener(
        new MyWindowManager.IGestureListener() {
          @Override
          public void onShowPress(View view, MotionEvent event) {
            Message msg = locationHandler.obtainMessage();
            msg.arg1 = MODE_CYCLE;
            switch (view.getId()) {
              case R.id.left:
                Log.i(TAG, "left onShowPress.");
                msg.what = TO_LEFT;
                break;
              case R.id.right:
                Log.i(TAG, "right onShowPress.");
                msg.what = TO_RIGHT;
                break;
              case R.id.top:
                Log.i(TAG, "top onShowPress.");
                msg.what = TO_TOP;
                break;
            }
            locationHandler.sendMessage(msg);
          }

          @Override
          public void onPressUp(View view, MotionEvent event) {
            Log.i(TAG, "left onPressUp.");
            isMocking = false;
          }

          /**
           * 1.该方法相当于onClick,只有单击才会调用 2.如果用onclick,长按也会被调用,除非有设长按监听setLongClickListener才会区分长按和单击;
           *
           * @param view
           * @param event
           */
          @Override
          public void onSingleTap(View view, MotionEvent event) {
            isMocking = false;
            switch (view.getId()) {
              case R.id.left:
                Log.i(TAG, "left button tap. currentThread:" + Thread.currentThread().getId());
                mockGpsPoint(TO_LEFT);
                break;
              case R.id.right:
                Log.i(TAG, "right button tap. currentThread:" + Thread.currentThread().getId());
                mockGpsPoint(TO_RIGHT);
                break;
              case R.id.top:
                Log.i(TAG, "top button tap. currentThread:" + Thread.currentThread().getId());
                mockGpsPoint(TO_TOP);
                break;
            }
          }
        });
  }