如何在PanoramaGL-Activity上方显示地图框架

时间:2016-01-18 20:04:33

标签: android android-layout osmdroid panoramas

我使用PanoramaGL库(https://code.google.com/p/panoramagl/)来显示球形360°图像。

我想要的: 屏幕的上半部分应包含OSMdroid-Map(https://osmdroid.net/),下半部分显示PanoramaGL的全景图像,如下所示:

enter image description here

问题: 您可以使用扩展Activity的PLView类在PanoramaGL中创建全景视图。

如果您显示全景图像,它总是占据整个屏幕,我看不到改变布局的方法。一旦我尝试定义任何xml-Layout,全景图像就不会再出现了。

我当前的代码,其中地图部分被注释掉,因此只显示全景图像:

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);
  }
}

有关如何解决此问题的任何建议?有没有办法显示以垂直布局排列的两个单独的活动?

1 个答案:

答案 0 :(得分:0)

是的,你可以同时显示全景和地图

  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);
    

    }