Android 如何清除SupportMapFragment要绘制到的glSurfaceView? 问题:

Android 如何清除SupportMapFragment要绘制到的glSurfaceView? 问题:,android,glsurfaceview,supportmapfragment,mapfragment,Android,Glsurfaceview,Supportmapfragment,Mapfragment,有没有办法在SupportMapFragment进行后续glDraw()调用之前手动清除它所绘制的OpenGL缓冲区 原因: 我有一个ActivityGroup,它包含两个不同的嵌入式活动(在给定时间,屏幕上只能显示其中一个)。下面是它的一段布局代码 <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_below="@+id/main

有没有办法在SupportMapFragment进行后续glDraw()调用之前手动清除它所绘制的OpenGL缓冲区

原因: 我有一个ActivityGroup,它包含两个不同的嵌入式活动(在给定时间,屏幕上只能显示其中一个)。下面是它的一段布局代码

<RelativeLayout
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:layout_below="@+id/main_header"
 android:background="#313131" >

    <FrameLayout
     android:id="@+id/map_area_one"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:padding="5dp" />
    <FrameLayout
     android:id="@+id/map_area_two"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent" />
</RelativeLayout>              

my ActivityGroup中两个活动的视图都包含SupportMapFragment。ActivityGroup中的第一个活动(带有较小的SupportMapFragment)首先显示,其视图成为id为map\u area\u one的FrameLayout的子级

当用户按下按钮时,我启动ActivityGroup内的第二个活动(带有较大的SupportMapFragment),它的视图将成为id为map\u area\u one的FrameLayout的子视图。然后隐藏第一个活动的视图

我遇到的问题是,即使第一个活动的视图不再可见,我仍然可以看到第一个活动较小的SupportMapFragment(即使我无法与它交互)。我在下面附上了图片

我得出的结论是,这是因为两个SupportMapFragments使用相同的OpenGL SurfaceView绘制地图。我很确定,由于某种原因,当我隐藏第一个活动时,SupportMapFragment绘制到的openGL缓冲区没有被清除。我这样说有两个原因:

  • 如果我将应用程序设置为背景并将其放回前台,则较小的SupportMapFragment将不再可见
  • 如果我将较大的SupportMapFragment更改为使用GoogleMaps Android v1的MapView,则不存在此问题。这是因为谷歌地图Android v1没有使用OpenGL 图像 用户切换到第二个活动后的屏幕截图。请注意,第一个活动的SupportMapFragment(底部较小的地图条)仍然可见。



    屏幕截图后,我的背景应用程序,并把它带回前台。第一个活动的SupportMapFragment不再可见(应该是这样)。我假设是因为当应用程序再次出现在前台时,第二个活动名为glClear()。

    如有任何帮助或建议,将不胜感激。
    谢谢。

    我至少可以通过在SupportMapFragment的初始时间传递某些关于zIndex的选项来委派问题:

    GoogleMapOptions options = new GoogleMapOptions();
    options.zOrderOnTop(true);
    fragmentMap = SupportMapFragment.newInstance(options);
    

    我希望这有助于解决问题,至少我可以在SupportMapFragment的初始时间传递一些关于zIndex的选项:

    GoogleMapOptions options = new GoogleMapOptions();
    options.zOrderOnTop(true);
    fragmentMap = SupportMapFragment.newInstance(options);
    

    我希望这有帮助

    我也希望得到答案,这在切换MapFragments时也会发生。你最终找到了这个问题的解决方案吗?我也希望得到答案,这在切换MapFragments时也会发生。你最终找到了这个问题的解决方案吗?嘿,非常感谢,这对我有用。我只有在设备args.putParcelable(映射选项,选项)上存在此问题;其中MAP_OPTIONS的意思是从SDK SupportMapFragment类代码中提取的“MapOptions”。非常感谢,这对我很有用。我只有在设备args.putParcelable(映射选项,选项)上存在此问题;其中,MAP_OPTIONS表示从SDK SupportMapFragment类代码中提取的“MapOptions”