Android - получить координаты пикселя, на который щелкнули мышью - PullRequest
0 голосов
/ 07 декабря 2011

Я делаю приложение для Android, которое использует карты Google. Одна функциональность заключается в том, что пользователь может коснуться точки на карте и получить координаты. Я нашел отличный учебник здесь http://mobiforge.com/developing/story/using-google-maps-android?page=1, который показывает, как реализовать это с MotionEvent (вы можете найти код в учебнике в разделе «Получение местоположения, которое было затронуто»).

Моя проблема в том, что сенсорные события, похоже, не поддерживаются эмулятором, и у меня нет Android-устройства для его тестирования в любое время. Поэтому я хотел бы иметь метод, который позволяет мне щелкать мышью по экрану и получать координаты пикселя, по которому щелкнули (чтобы преобразовать их в геокоординаты).

Из моих исследований пока я не смог найти ничего подходящего, и я не найду, если что-то существует. Кто-нибудь может помочь?

Ответы [ 2 ]

1 голос
/ 07 декабря 2011

Это поможет вам:

создать код:

   mapView = (MapView) findViewById(R.id.mapView);
            mapView.setBuiltInZoomControls(true);
            List<Overlay> mapOverlays = mapView.getOverlays();
            MapOverlay mapOverlay = new MapOverlay();

           mapOverlays.add(mapOverlay);

внутренний класс для наложения, который будет реагировать на прикосновения (нажмите на эмулятор)

 class MapOverlay extends com.google.android.maps.Overlay
        {   

        @Override
        public boolean onTap(GeoPoint p, MapView mapView) {
            // TODO Auto-generated method stub


             mc= mapView.getController();
            mc.animateTo(p);

            latitude=p.getLatitudeE6() / 1E6;
            longitude=p.getLongitudeE6() /1E6 ;
                    Toast.makeText(Activity.this, 
                        p.getLatitudeE6() / 1E6 + "," + 
                        p.getLongitudeE6() /1E6 , 
                        Toast.LENGTH_SHORT).show();
      return true;

        }
}
1 голос
/ 07 декабря 2011

Я думаю, вы найдете, что этот конкретный урок будет реагировать и на щелчки мышью.После того, как все скриншоты сделаны из эмулятора.

Только одна заметка о авторском стиле кодирования:

, в то время как

if (event.getAction() == 1)

будет работать

if (event.getAction() == MotionEvent.ACTION_UP) 

равносильно тому же, но является более описательной и лучшей практикой

...