Guest User

MapView Code

a guest
Aug 28th, 2012
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.43 KB | None | 0 0
  1. import android.content.Context;
  2. import android.content.Intent;
  3. import android.util.AttributeSet;
  4. import android.view.GestureDetector;
  5. import android.view.GestureDetector.OnDoubleTapListener;
  6. import android.view.GestureDetector.OnGestureListener;
  7. import android.view.MotionEvent;
  8. import android.widget.Toast;
  9.  
  10. import com.google.android.maps.GeoPoint;
  11. import com.google.android.maps.MapController;
  12. import com.google.android.maps.MapView;
  13.  
  14. public class TapControlledMapView extends MapView implements OnGestureListener {
  15.  
  16.     private GestureDetector gd;    
  17.     private OnSingleTapListener singleTapListener;
  18.     private OnDoubleTapListener doubleTapListener;
  19.  
  20.     public TapControlledMapView(Context context, AttributeSet attrs) {
  21.         super(context, attrs);
  22.         setupGestures();
  23.     }
  24.  
  25.     public TapControlledMapView(Context context, AttributeSet attrs, int defStyle) {
  26.         super(context, attrs, defStyle);
  27.         setupGestures();
  28.     }
  29.  
  30.     public TapControlledMapView(Context context, String apiKey) {
  31.         super(context, apiKey);
  32.         setupGestures();
  33.     }
  34.    
  35.     private void setupGestures() {
  36.         gd = new GestureDetector(this);  
  37.        
  38.         //set the on Double tap listener  
  39.         gd.setOnDoubleTapListener(new OnDoubleTapListener() {
  40.  
  41.             @Override
  42.             public boolean onSingleTapConfirmed(MotionEvent e) {
  43.                 final MapController mc = TapControlledMapView.this.getController();
  44.                 if (singleTapListener != null) {
  45. //                    GeoPoint p = TapControlledMapView.this.getProjection().fromPixels(
  46. //                             (int) e.getX(),
  47. //                             (int) e.getY());
  48. //                  mc.animateTo(p);
  49.                     return singleTapListener.onSingleTap(e);
  50.                 } else {
  51.                     return false;
  52.                 }
  53.             }
  54.  
  55.             @Override
  56.             public boolean onDoubleTap(MotionEvent e) {
  57.                 TapControlledMapView.this.getController().zoomInFixing((int) e.getX(), (int) e.getY());
  58.                 return false;
  59. //              if(doubleTapListener != null) {
  60. //                  return doubleTapListener.onDoubleTap(e);
  61. //              }
  62. //              else{
  63. //              return false;
  64. //              }
  65.             }
  66.  
  67.             @Override
  68.             public boolean onDoubleTapEvent(MotionEvent e) {
  69.                 return false;
  70.             }
  71.            
  72.         });
  73.     }
  74.    
  75.     @Override
  76.     public boolean onTouchEvent(MotionEvent ev) {
  77.         if (this.gd.onTouchEvent(ev)) {
  78.             return true;
  79.         } else {
  80.             return super.onTouchEvent(ev);
  81.         }
  82.     }
  83.    
  84.     public void setOnSingleTapListener(OnSingleTapListener singleTapListener) {
  85.         this.singleTapListener = singleTapListener;
  86.     }
  87.     public void setOnDoubleTapListener(OnDoubleTapListener doubleTapListener) {
  88.         this.doubleTapListener = doubleTapListener;
  89.     }
  90. //  public void setOnLongClickListener(OnLongClickListener longlistener)
  91. //  {
  92. //      this.longClickListener = longlistener;
  93. //  }
  94.  
  95.     @Override
  96.     public boolean onDown(MotionEvent e) {
  97.         return false;
  98.     }
  99.  
  100.     @Override
  101.     public void onShowPress(MotionEvent e) {}
  102.  
  103.     @Override
  104.     public boolean onSingleTapUp(MotionEvent e) {
  105.      return false;
  106.     }
  107.  
  108.     @Override
  109.     public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
  110.             float distanceY) {
  111.         return false;
  112.     }
  113.  
  114.     @Override
  115.     public void onLongPress(MotionEvent e) {
  116.     }
  117.  
  118.     @Override
  119.     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
  120.             float velocityY) {
  121.         return false;
  122.     }
  123. }
  124.  
  125. And here's the OnSingleTapListener interface:
  126.  
  127. import android.view.MotionEvent;
  128.  
  129. public interface OnSingleTapListener {
  130.     public boolean onSingleTap(MotionEvent e);
  131.    
  132. }
Advertisement
Add Comment
Please, Sign In to add comment