【发布时间】:2010-03-12 22:33:35
【问题描述】:
我正在开发一个使用 Google Maps API MapView、MapController、MapActivity 和 ItemizedOverlay 的 Android 应用程序。我基本上是在尝试重新创建 Maps 应用程序的某些功能(该死的 Google 没有为项目提供气泡——因为没有更好的名称!),尤其是那些气泡。
在包含我的 MapView 的 XML 布局文件中,我的语音气泡有一个不可见的 XML 结构。第一次显示语音气泡时,我抓取该 XML 并将其从其当前父级中删除,对其应用一些 ItemizedOverlay.LayoutParams,并将其作为叠加层添加到 MapView。我将它放在所选项目的上方,用正确的文本填充它,然后将其设置为可见。
这一切都很好。不过,这里的目标是自动为地图设置动画,以显示语音气泡的任何部分,这些部分在打开时可能不在屏幕上。因此,在对气泡进行所有操作之后,即使在将其显示给用户之后,我仍在尝试 popup.getWidth() (弹出窗口是我的 LinearLayout 的实例,它是语音气泡)。问题是,popup.getWidth() 正在返回我之前显示的弹出窗口的宽度,而不是当前显示的。我无法弄清楚为什么会发生这种情况,如果我要获取宽度 after 我将其设置为具有新尺寸的可见性(顺便说一下,当我设置它们时,它们是相对的使用 LayoutParams: fill_content for both width and height).. 我什至尝试在尝试获取宽度之前强制 MapView 和“弹出窗口”都无效()。
任何想法为什么会发生这种情况?在尝试获取视图之前,如何强制视图适应新维度?
谢谢! 尼克
【问题讨论】:
-
你能帮我添加气泡部分吗?我想知道怎么做,但我做不到。
标签: android google-maps map overlay