Страницы

Поиск по вопросам

Показаны сообщения с ярлыком android-location. Показать все сообщения
Показаны сообщения с ярлыком android-location. Показать все сообщения

четверг, 23 января 2020 г.

Google maps Button “MyLocation”

#android #google_maps #android_location


Я решил реализовать кнопку "Определения местоположения" со всеми состояниями, как
в Google maps.

Подробнее:


Неактивная - Когда пользователь шастает по карте.  





Активная - Когда пользователь определил свое местоположение на карте, и камера следует
за ее перемещением.




Теперь к коду:




Кнопка определения местоположения:

FAB.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        cameraFromPosition();
        followUser = true;
        FAB.setColorFilter(ContextCompat.getColor(getApplicationContext(),R.color.primary));
// синий цвет т.е. активная
    }
});


Слежка за местоположением:

@Override
public void onLocationChanged(Location location) {
    if (followUser) { // начинаем слежку т.к. нажата кнопка "определения местоположения"
и цвет ей синий
        cameraFromPosition();
    }
}


Как лучше реализовать метод "Отлова, когда пользователь опять начал шастать по карте,
и тем самым кнопку сделать неактивной т.е. серой"?
    


Ответы

Ответ 1



Откопал я таки официальную серию новых методов от Google [Doc], которые отлавливают скролл по карте и не только. P.S. all inclusive. Для решения моей задачи хватило только следующее: implements GoogleMap.OnCameraMoveStartedListener. В методе public void onMapReady(GoogleMap googleMap) добавитьmap.setOnCameraMoveStartedListener(this);. И последнее: @Override public void onCameraMoveStarted(int reason) { if (reason == GoogleMap.OnCameraMoveStartedListener.REASON_GESTURE) { followUser = false; FAB.setColorFilter(ContextCompat.getColor(getApplicationContext(),R.color.grey)); } } P.S. Готовый Callback от Google в подарок.

среда, 13 марта 2019 г.

Google maps Button “MyLocation”

Я решил реализовать кнопку "Определения местоположения" со всеми состояниями, как в Google maps.
Подробнее:
Неактивная - Когда пользователь шастает по карте.

Активная - Когда пользователь определил свое местоположение на карте, и камера следует за ее перемещением.

Теперь к коду:

Кнопка определения местоположения:
FAB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { cameraFromPosition(); followUser = true; FAB.setColorFilter(ContextCompat.getColor(getApplicationContext(),R.color.primary)); // синий цвет т.е. активная } });
Слежка за местоположением:
@Override public void onLocationChanged(Location location) { if (followUser) { // начинаем слежку т.к. нажата кнопка "определения местоположения" и цвет ей синий cameraFromPosition(); } }
Как лучше реализовать метод "Отлова, когда пользователь опять начал шастать по карте, и тем самым кнопку сделать неактивной т.е. серой"?


Ответ

Откопал я таки официальную серию новых методов от Google [Doc], которые отлавливают скролл по карте и не только.
P.S. all inclusive.
Для решения моей задачи хватило только следующее:
implements GoogleMap.OnCameraMoveStartedListener В методе public void onMapReady(GoogleMap googleMap) добавитьmap.setOnCameraMoveStartedListener(this);
И последнее:
@Override public void onCameraMoveStarted(int reason) { if (reason == GoogleMap.OnCameraMoveStartedListener.REASON_GESTURE) { followUser = false; FAB.setColorFilter(ContextCompat.getColor(getApplicationContext(),R.color.grey)); } }
P.S. Готовый Callback от Google в подарок.