如何在谷歌地图上更改任何overlayItem的状态?

时间:2010-02-05 16:08:57

标签: android google-maps map overlay

我能够在Googlemap上显示多个overlayItems,现在我想更改任何特定overlayItem的图标(以显示它是当前选定的事件)。我希望通过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>

OverlayItem的getMarker方法的代码如下。

@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;
}

现在我的问题是当用户点击其中一个导航键时,如何更改地图上任何overlayItem / Icon的状态?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您是否尝试使用方法setState(int id)?

基本上,您可以使用为StateListDrawable定义为XML属性的预定义状态,并根据其ID设置状态(即android.R.attr.state_active),也可以使用addState(int [] stateSet添加自己的状态,Drawable drawable)。

我自己没有尝试过,所以不能断定它是否有效。