我正在尝试使用SupportMapFragment使用Google Maps API V2 for Android,当我在使用opengl和相机的表面视图顶部添加地图时遇到问题。
问题是我在surfaceview顶部添加了dinamically片段,我得到的只是缩放控件,但是透明的地图。
是否与已经使用opengl的应用程序不兼容?
我应该在加载地图之前销毁opengl上下文吗?
可能是错误的API密钥,权限等其他问题吗?
我有什么办法可以让它与其他opengl表面一起使用吗?
UPDATE :我设法在独立活动(ProgramaticDemoActivity.java)上显示地图,因此它不是API KEY问题(尽管我必须创建一个新的API控制台项目)。
然后我再次尝试了我的表面视图,我可以看到地图,但并非总是如此。调用mMapFragment.getMap()时,我通常会得到null。即使在我将片段添加到布局(以编程方式)之后,也许onCreateView的调用速度不够快。有什么想法吗?
答案 0 :(得分:1)
自Map API V2以来,它使用GL表面。较旧的API可能会尊重某些z排序,因为它使用简单的2D画布来绘制地图。
截至目前,android无法按特定顺序处理重叠的EGL表面。 作为一种特殊的视图,在某种意义上可以直接访问其余的矩形内存框架,这些视图不会受到布局中提到的z顺序的影响。
即使在同一台设备上进行不同的运行,它或多或少都会抛出一个硬币投掷到哪一个上面。
请参阅Dianne的回复: https://groups.google.com/forum/?fromgroups=#!topic/android-developers/COffLpanlz0
但是要为你的GL Surface探索setZOrderMediaOverlay()和setZOrderOnTop()。你可能会有运气。
解决方法:
或者随意加注明星issues (eg. #6613)并等待。
答案 1 :(得分:0)
“透明地图”是什么意思?您看到地图图块“透明”或者您什么都看不到(只有缩放控件而没有图块)?
您是否尝试过不使用OpenGL图层的SupportMapFragment?只是为了抛弃API密钥问题。
我遇到了与使用Google地图活动相同的问题,我再次解决了测试和测试问题,但我认为问题与Maps API密钥有关。
答案 2 :(得分:0)
添加MapFragment后你不能直接getMap()...你必须等到它准备好了。建议你创建一个MyCustomisedMapFragment并让它在onResume方法中做一些事情来告诉你的其他代码你准备好getMap()。