Как отобразить рамку карты над PanoramaGL-Activity

Я использую библиотеку PanoramaGL (https://code.google.com/p/panoramagl/) для отображения сферических изображений 360°.

Что я хочу: верхняя половина экрана должна содержать OSMdroid-Map (https://osmdroid.net/ ), а в нижней половине показаны панорамные изображения с помощью PanoramaGL, например:

введите здесь описание изображения

Проблемы: Вы создаете панорамные виды в PanoramaGL, используя класс PLView, который расширяет Activity.

Если вы показываете панорамное изображение, оно всегда занимает весь экран, и я не вижу возможности изменить макет. Как только я пытаюсь определить любой xml-макет, панорамное изображение больше не отображается.

Мой текущий код, где часть карты закомментирована, так что отображается только панорамное изображение:

package com.example.campusnav;
//lots of imports...
public class MainActivity extends PLView {

private MapView mMapView;
private MapController mMapController;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    /*setContentView(R.layout.activity_main);

    mMapView = (MapView) findViewById(R.id.mapview);
    mMapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);
    mMapView.setBuiltInZoomControls(true);
    mMapView.setMultiTouchControls(true);
    mMapController = (MapController) mMapView.getController();
    mMapController.setZoom(13);
    GeoPoint startPoint = new GeoPoint(52.432846, 8.369147);
    mMapController.setCenter(startPoint);*/

    PLSpherical2Panorama panorama = new PLSpherical2Panorama();
    panorama.setImage(new PLImage(PLUtils.getBitmap(this, R.raw.p_1), false));
    this.setPanorama(panorama);
  }
}

Любые предложения, как обойти эту проблему? Есть ли способ отобразить два отдельных действия, расположенных вертикально?


person Community    schedule 18.01.2016    source источник
comment
osmdroid.net НЕ является библиотекой карт osmdroid. github.com/osmdroid/osmdroid — правильный URL. Вы пробовали использовать фрагменты?   -  person spy    schedule 19.01.2016


Ответы (1)


да, вы можете отображать и панораму, и карту вместе

  1. Расширьте свою деятельность с помощью PLView

  2. XML

    <RelativeLayout
        android:id="@+id/rl_streetview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="0dp"
        android:layout_weight="1"
        android:background="#00FF40" >
    </RelativeLayout>
    
    <RelativeLayout
        android:id="@+id/rl_mapview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rl_streetview"
        android:layout_margin="0dp"
        android:layout_weight="1" >
    
        <fragment
            android:id="@+id/location_map"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            class="com.google.android.gms.maps.SupportMapFragment" />
    </RelativeLayout>
    

  3. Деятельность

    @Override
        protected View onContentViewCreated(View contentView) {
            ViewGroup mainView = (ViewGroup) this.getLayoutInflater().inflate(R.layout.activity_main, null);
            rl_streetview = (RelativeLayout) mainView.findViewById(R.id.rl_streetview);
            rl_mapview = (RelativeLayout) mainView.findViewById(R.id.rl_mapview);
    

    }

person ask4solutions    schedule 18.02.2016