Google マップで実際の場所を表示する次のコードがあります。
public class LocationProjectActivity extends MapActivity implements OnTouchListener {
private MapController mapController;
private MapView mapView;
private LocationManager locationManager;
private MyOverlays itemizedoverlay;
private MyLocationOverlay myLocationOverlay;
private GeoPoint MyPoint;
public static int longitude;
public static int latitude;
private GeoPoint destinationPoint;
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapView.setSatellite(true);
mapView.computeScroll();
mapController = mapView.getController();
mapController.setZoom(13);
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, new GeoUpdateHandler());
myLocationOverlay = new MyLocationOverlay(this, mapView);
mapView.getOverlays().add(myLocationOverlay);
myLocationOverlay.runOnFirstFix(new Runnable() {
public void run() {
mapView.getController().animateTo(myLocationOverlay.getMyLocation());
}
});
}
@Override
public boolean onTouch(View v, MotionEvent event) {
System.out.println("SCREEN WAS CLICKED");
return true;
}
私がやりたいのは、画面に触れたときにキャッチすることですが、メソッドが呼び出されることはありません。私はすでに検索してこれを見つけました: マップ内のOnTouch
私はすべてを試しましたが、機能する唯一のコードは次のとおりです。
mapView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// Your code and remember to return true!
return (true);
}
});
問題は、このコードを使用すると、MapView が既に持っている自然なフリングとズームを失うことです。
ありがとうございました。