之前遇到的問題是這樣的:我要在攝像機預覽界面加一個高德地圖進來,第一次地圖顯示出來了,但是再次進入的話地圖就透明了,,,
原因:surfaceview不能疊加,否則就會有一方被隱掉
解決方法:將高德地圖的MapView替換成TextureMapView
一個顯示地圖的視圖(View)。它負責從服務端獲取地圖數據。當屏幕焦點在這個視圖上時,它將會捕捉鍵盤事件(如果手機配有實體鍵盤)及屏幕觸控手勢事件。 使用這個類必須按照它的生命周期進行操控,你必須參照以下方法onCreate(Bundle)、 onResume()、onPause()、onDestroy()、onSaveInstanceState(Bundle)、onLowMemory() 當MapView初始化完成后,用戶可以通過getMap()方法獲得一個AMap 對象。如果MapView 沒有初始成功,則執行getMap()將返回null。 如果要求程序在比較低版本的Android 上運行,使用這個類將比MapFragment 或SupportMapFragment 類更加合適。
一個顯示地圖的視圖(View)。它負責從服務端獲取地圖數據。當屏幕焦點在這個視圖上時,它將會捕捉鍵盤事件(如果手機配有實體鍵盤)及屏幕觸控手勢事件。 使用這個類必須按照它的生命周期進行操控,你必須參照以下方法onCreate(Bundle)、 onResume()、onPause()、onDestroy()、onSaveInstanceState(Bundle)、onLowMemory() 當MapView初始化完成后,用戶可以通過getMap()方法獲得一個AMap 對象。如果MapView 沒有初始成功,則執行getMap()將返回null。 如果要求程序在比較低版本的Android 上運行,使用這個類將比TextureMapFragment 或TextureSupportMapFragment 類更加合適。它和MapView的區別在于,TextureMapView是一個TextureView而MapView是一個GLSurfaceView。所以TextureMapView 可以和其他的GlSurfaceView(比如相機)共存不會出現穿透現象,也可以放在ViewPager中不會出現滑動黑邊現象。
注:另外說一下百度地圖也會出現這樣的問題,好像也可以這樣解決(沒試過):
GLSurfaceView glview = (GLSurfaceView) (mMapView.getChildAt(0)); if (glview != null) { glview.setZOrderOnTop(true); //glview.setZOrderMediaOverlay(true); // 多添加這一句,就可以顯示放大縮小按鈕了。 }
新聞熱點
疑難解答