Android应用程序结构问题

时间:2010-12-19 11:48:33

标签: android android-mapview code-structure

我目前正在开发一个使用MapView并为其添加叠加层的应用程序。基本上在任何一个给定时间,覆盖列表不应超过两个。

这是我试图做的事情......

我已经扩展了ItemizedOverlay类(MyFriendOverlay),然后在扩展类中创建了一个私有ArrayList对象,我将这些对象附加到。然而;我遇到了一个问题,我不确定如何修复。如果你看一下这段代码:

ImageView mapMarker = new ImageView(getApplicationContext()); mapMarker.setImageResource(R.drawable.markertrp);

myPointsToShow = new myFriendOverlay(mapMarker.getDrawable(), getApplicationContext());

正如我在这里可以注意到的,我创建了一个带有基于我的drawable图标的ImageView。在此之后,我从ItemizedOverlay获得了扩展类。在构造函数中,它采用drawable和context两个参数。

据我所知,下面的构造函数是必需的(也许可以修改):

public myFriendOverlay(Drawable defaultMarker, Context context)

这里的问题是我一直在创建myPointsToShow的新实例,这是一个问题,因为我有一个我想在扩展类中使用的ArrayList,所以我可以直接控制叠加层。通过每次实例化一个新的,我并没有真正添加到列表本身。

简而言之:

我想要的只是我的应用程序有两个点(A和B),如果检测到B的新位置,则从覆盖列表中删除B,并将其替换为新位置。 A也一样。为了简化它,我想将索引0附加到A并将索引1附加到B,这样它就不会跨越两个点。

由于必要的构造函数的问题,我无法为此提出解决方案,也许我对它的思考太过分了......

请提供任何反馈! :)

感谢阅读。

1 个答案:

答案 0 :(得分:1)

根据我的经验,我的工作如下:

  • 为我要展示的每种图像创建一个项目覆盖。
  • 如果每个叠加层的项目列表不是很长,我会将其传递给意图。

顺便说一句,您需要使用R.drawable.something作为叠加层。您无需创建ImageView

我一直在使用这个android-library for maps:android-mapviewballoons。看看吧!