我正在通过Udacity为我的Android开发人员Nanodegree开发一个Google Maps应用程序作为Capstone项目,并遇到了一个我不确定如何解决的问题。
我需要在应用程序中包含一个小部件,但由于小部件不支持MapView,我想拍摄用户喜欢的位置的快照(即创建位图),并使用ImageViews在小部件中显示它们。
为了创建快照,我必须使用GoogleMap渲染位置,并使用SnapshotReadyCallback来检索要存储的渲染图像,然后传递给窗口小部件。由于GoogleMap类只能在主UI线程上运行,因此无法从窗口小部件或后端服务进行此渲染。我可以从“收藏夹”页面(它呈现精简版样式的地图列表)中进行此操作,但用户没有义务在使用窗口小部件之前访问“收藏夹”页面。当用户选择喜欢的位置时,我无法真正拍摄快照,因为主地图在任何时候都可以有多个标记,如果我删除标记,拍摄快照,然后重新渲染地图,那将会很尴尬
有什么方法可以从主线程中拍摄快照吗?有什么办法可以在窗口小部件中显示MapView吗?或者是否有一些其他有意义的小部件对地图应用程序有用?我真的不想显示命名坐标的文本列表。
我已经读过可以使用在线Google服务返回图片 - 如果我已经用尽所有其他选项,我可能会考虑这个问题。但是如果可能的话,我真的希望将功能保留在内部。
感谢您的时间。
的Darryl
答案 0 :(得分:0)
对于之前发布的所有帖子感到抱歉 - 在发布问题后的一分钟内,我想到了一个现实的解决方案。当用户选择喜欢的位置时,我可以显示一个确认对话框,其中包含该位置的地图,并使用该场合拍摄快照。我仍然愿意接受其他建议。
达里尔