我能够在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的状态?
非常感谢任何帮助。
答案 0 :(得分:0)
您是否尝试使用方法setState(int id)?
基本上,您可以使用为StateListDrawable定义为XML属性的预定义状态,并根据其ID设置状态(即android.R.attr.state_active),也可以使用addState(int [] stateSet添加自己的状态,Drawable drawable)。
我自己没有尝试过,所以不能断定它是否有效。