@Override
 public boolean onDoubleTap(MotionEvent e) {
   if (mOnTouchDotViewListener != null) {
     return mOnTouchDotViewListener.onDoubleTap();
   }
   return false;
 }
 @Override
 public boolean onSingleTapConfirmed(MotionEvent e) {
   mTopViewIconImg.setImageResource(R.drawable.icon_center);
   if (mOnTouchDotViewListener != null) {
     mOnTouchDotViewListener.onSingleTap(TouchDotView.this);
     return true;
   } else {
     return false;
   }
 }
 @Override
 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
   if (mOnTouchDotViewListener != null) {
     int w = getWidth() / 2;
     int h = getHeight() / 2;
     int x = (int) (e2.getRawX() - w);
     int y = (int) (e2.getRawY() - h);
     mOnTouchDotViewListener.onScrollTo(TouchDotView.this, x, y);
     return true;
   } else {
     return false;
   }
 }
 @Override
 public boolean onTouchEvent(MotionEvent event) {
   boolean result = mGestureDetector.onTouchEvent(event);
   if (event.getAction() == MotionEvent.ACTION_UP) {
     mTopViewIconImg.setImageResource(R.drawable.icon_center);
     if (mOnTouchDotViewListener != null) {
       int w = getWidth() / 2;
       int h = getHeight() / 2;
       int x = (int) (event.getRawX() - w);
       int y = (int) (event.getRawY() - h);
       mOnTouchDotViewListener.onTouchUp(this, x, y);
     }
   }
   return result;
 }
 @Override
 public void onLongPress(MotionEvent e) {
   if (mOnTouchDotViewListener != null) {
     mOnTouchDotViewListener.onLongPress();
   }
 }