Android Street View показывает черный экран во время загрузки - PullRequest
0 голосов
/ 28 января 2019

Я могу загрузить и увидеть изображение улицы в моем фрагменте, но во время загрузки показывает черный пустой экран .Есть ли решение, чтобы избежать этого пустого экрана при загрузке.

Вот код, который я поместил в XML для отображения Panorama:

<com.mypackagename.CustomStreetViewPanoramaView
        android:id="@+id/streetViewPanorama"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/addressLL" />

Во фрагменте при вызове initUI getStreetViewPanoramaAsync:

override fun initUI() {
        streetViewPanorama?.postDelayed({
            streetViewPanorama?.onCreate(Bundle())
            streetViewPanorama?.getStreetViewPanoramaAsync {
                onPanoramaReady(it)
                presenter?.getNearByPanorama(50, 0.5f)
            }
        }, 500)
    }

private fun onPanoramaReady(streetViewPanorama: StreetViewPanorama?) {
        isPanoramaLoaded = true
        panorama = streetViewPanorama
    }

После получения информации о местоположении от докладчика установка положения панорамы, например:

override fun setPanoramaPosition(locationInfo: LocationInfo, radius: Int, zoom: Float) {
        if (isPanoramaLoaded) {
            setState(progress = true)
            val location = LatLng(locationInfo.latitude, locationInfo.longitude)
            panorama?.setPosition(location, radius)
            panorama?.isStreetNamesEnabled = true

            panorama?.setOnStreetViewPanoramaChangeListener { streetViewPanoramaLocation ->
                run {
                    if (streetViewPanoramaLocation?.links != null) {
                        // if streetViewPanoramaLocation is present then set camera position
                        val panoramaLocation = panorama?.location?.position
                        val heading = SphericalUtil.computeHeading(panoramaLocation, location)

                        val camera = StreetViewPanoramaCamera.Builder()
                                .zoom(panorama?.panoramaCamera?.zoom?.plus(zoom)!!)
                                .tilt(panorama?.panoramaCamera?.tilt!!)
                                .bearing(panorama?.panoramaCamera?.bearing!!)
                                .build()
                        panorama?.animateTo(camera, 100)
                        setState(progress = false)
                    } else {
                        // if streetViewPanoramaLocation not available in 50 meter radius then try with 100 radius
                        if (radius != 100)
                            presenter?.getNearByPanorama(100, 0.5f)
                        else // if not found within 100 meter radius show error message
                            setState(error = true)
                    }
                }
            }
        }
    }
...