Как изменить состояние любого overlayItem на GoogleMap? - PullRequest
1 голос
/ 05 февраля 2010

Я могу отобразить несколько оверлейных элементов на Googlemap, теперь я хочу изменить значок любого конкретного оверлейного элемента (чтобы показать, что это выбранное в данный момент событие). Я хочу сделать это с помощью кнопок навигации (далее, назад), как на картах Google.

Я использую StateListDrawable для отображения значков для OverlayItems.

Файл значка

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_selected="true" android:drawable="@drawable/selected_icon"/>
 <item android:drawable="@drawable/unselected_icon"/>
</selector>

код метода getMarker для OverlayItem выглядит следующим образом.

@Override
public android.graphics.drawable.Drawable getMarker(int stateBitset){
    Drawable icon;              
    icon = this.mapActivity.getResources().getDrawable(R.drawable.film_icon);
    icon.setBounds(0, 0, icon.getIntrinsicWidth(), icon.getIntrinsicHeight());
    return icon;
}

Теперь у меня вопрос, как мне изменить состояние любого наложенного элемента / значка на карте, когда пользователь нажимает одну из клавиш навигации?

Любая помощь очень ценится.

1 Ответ

0 голосов
/ 10 февраля 2010

Вы пытались использовать метод setState (int id)?

По сути, вы можете либо использовать предопределенные состояния, определенные как атрибуты XML для StateListDrawable, и установить состояние в соответствии с их идентификаторами (т. Е. Android.R.attr.state_active), либо добавить собственные состояния, используя addState (int [] stateSet). , Drawable Drawable).

Я сам не пробовал, поэтому не могу сделать вывод, что он работает.

...