【问题标题】:Android application structure questionAndroid应用结构题
【发布时间】:2010-12-19 11:48:32
【问题描述】:

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

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

我扩展了 ItemizedOverlay 类 (MyFriendOverlay),然后在该扩展类中创建了一个私有 ArrayList 对象,我将把叠加层附加到该对象。然而;我遇到了一个不确定如何解决的问题。如果你看这段代码:

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

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

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

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

public myFriendOverlay(Drawable defaultMarker, Context context)

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

简而言之:

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

由于必要的构造函数的问题,我无法为此提出解决方案,也许是我想太多了...

请提供任何反馈! :)

感谢阅读。

【问题讨论】:

    标签: android android-mapview code-structure


    【解决方案1】:

    根据我的经验,我的做法如下:

    • 根据我要显示的图像类型创建一个项目叠加层。
    • 如果每个叠加层的项目列表不是很长,我会将其传递到 Intent 中。

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

    我一直在使用这个 android-library 来制作地图:android-mapviewballoons。看看吧!

    【讨论】:

    • 谢谢,我去看看!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-02
    • 2011-07-23
    • 2011-03-12
    相关资源
    最近更新 更多