setFocus (overlayItem) ItemizedOverlay не работает

Я работаю над приложением андроида, и я могу к отображенному несколько значков на использовании карты ItemizedOverlay, и я также реализовал onTap (международный индекс) метод ItemizedOverlay для отображения значка определенная информация в необходимом окне.

Теперь, я хочу изменить значок выбранного наложения, когда пользователь нажимает на некоторый другой coponent. Я называю setFocus (OverlayItem) методом ItemizedOverlay для отображения другого значка определенного наложения. это хорошо работает, когда пользовательское касание на любом определенном наложении, но не изменяет значок, когда я называю setFocus (OverlayItem) методом.

Какие-либо указатели? что такое лучший способ programtically изменяющегося значка выбранного наложения в mapView?

У меня есть метод overriden getMarker моего пользовательского класса OverlayItem для отображения различных маркеров для другого состояния overlayItem., и я хочу использовать setFocus (OverlayItem) метод, чтобы изменить состояние OverlayItem и также изменить маркер при выборе.

@Override
public Drawable getMarker(int stateBitset){
 if(stateBitset==0){
  icon = Util.getCategoryMapIcon(0);   
  icon.setBounds(0-icon.getIntrinsicWidth()/2, 0-icon.getIntrinsicHeight(), icon.getIntrinsicWidth()/2, 0);
  return icon;
 }else {
  icon = Util.getCategoryMapIcon(OverlayItem.ITEM_STATE_SELECTED_MASK);
  icon.setBounds(0-icon.getIntrinsicWidth()/2, 0-icon.getIntrinsicHeight(), icon.getIntrinsicWidth()/2, 0);
  return icon;   
 }
}

здесь Util.getCategoryMapIcon (0) является Служебный метод возвратить соответствующий значок, этот метод берет некоторые параметры, которые я удалил, чтобы заставить этот пример выглядеть простым.

и ниже код для изменения состояния

Button leftNavigation = (Button) findViewById(R.id.left_navigation_button);
leftNavigation.setOnClickListener(new OnClickListener() {
 @Override
 public void onClick(View v) {
  OverlayItem item = searchResultsOverlay.get(index+1);
  setFocus(item);
 }
});

Любая справка будет очень цениться. Спасибо, Aamir

6
задан Aamir Yaseen 1 February 2010 в 16:35
поделиться

1 ответ

В вашем CodeMarker Getmarker , попробуйте вернуть StateListdrawable (который соответствует в Drawable XML), который содержит Dulk Drawnable (no Stucts) и нанесенный с помощью android.r.attr.state_foCused состояние.

См. Дешеводитель здесь: Цвет селектора ListView Android

0
ответ дан 18 December 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: