【发布时间】:2011-08-12 10:11:30
【问题描述】:
我已经制作了一个应用程序,当用户单击它时,我需要在其中更改覆盖项的可绘制对象。我正在使用以下代码来实现此效果:
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
if(item.getTitle().equals("true")){
if(item.getMarker(OverlayItem.ITEM_STATE_FOCUSED_MASK).equals(greenMarker)){
item.setMarker(orangeMarker);
view1ComplainPoleList.add(item.getSnippet());
Log.i("adding",item.getSnippet());
map.invalidate();
}
else{
item.setMarker(greenMarker);
view1ComplainPoleList.remove(item.getSnippet());
Log.i("removing",item.getSnippet());
map.invalidate();
}
}
return true;
}
但这似乎不起作用。每当我单击覆盖项时,它就会从视图中消失。怎么了?
更新:
您能否告诉我如何在地图滚动时加载新视图...?
提前谢谢你。
【问题讨论】:
-
是否有必要在您的代码中执行此操作?在 xml 中执行此操作会简单得多。 Android 提供了一种使用 xml 定义状态可绘制对象(聚焦、按下、默认)的方法。
-
如果您知道,能否请您详细说明一个更好的方法。
-
会不会是你没有设置marker drawable bounds的情况?
-
@user7777.. 你能详细说明你在说什么吗?
-
喜欢
mOverlaydrawable.setBounds(imgRect);,如果您手动绘制叠加层。