Как вызвать событие, когда маркер карты Google сбрасывается в определенном месте на экране?

Маркер карты Google можно перетаскивать по экрану, поэтому я хочу знать, есть ли способ вызвать событие, когда маркер опускается в определенном месте на экране, скажем, слева внизу.

2 ответа

Решение

После создания макета и инициализации карты добавьте следующий код в onCreate();

    View mapView = getSupportFragmentManager().findFragmentById(R.id.map).getView();
if (mapView.getViewTreeObserver().isAlive()) {
    mapView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
           mapView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
            map.moveCamera(CameraUpdateFactory.newLatLngZoom(CENTER, 15));
            Point markerScreenPosition = map.getProjection().toScreenLocation(marker.getPosition());
            int x = markerScreenPosition.getX();
            int y = markerScreenPosition.getY();
            if(x == yourValue && y == yourValue){
               //your trigger code goes here   
             }
        }
    });
}

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

Другие вопросы по тегам