如何让Google Mapview从较小的mapview变为全屏?

时间:2013-03-06 12:03:22

标签: android google-maps

我在屏幕的一角有一个Google mapview。我想添加一个事件,通过地图界面上的按钮使其全屏显示,然后使用相同的按钮再次显示小屏幕。任何想法??

Android v4.0.4 Google Map API V2

2 个答案:

答案 0 :(得分:3)

你可以通过2种方式做到这一点:

  1. 创建一个新的Activity,按下按钮即可开始,并将包含一个全屏地图。在此活动中,创建相同的按钮,将您带回到原始Activity

  2. 您可以在同一窗口中以编程方式更改布局宽度MapFragment的长度。

  3. 第二个选项会更好,因为你可以避免新活动加载的屏幕闪烁。

    更新:

    关于第二个选项这里是一个代码我写的放大地图onClick地图看看这是否有助于你:

     @Override
     public void onMapClick(LatLng point) 
    {
        LinearLayout mapFrameLayout = (LinearLayout)findViewById(R.id.mapFrameLayout);
    
        if (!isMapOpen)     
        {
            LinearLayout.LayoutParams fullMapParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
            if (!isDetailsOpen)
            {
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.hide(closedDetailsFragment).commit();
                mapFrameLayout.setLayoutParams(fullMapParams);
                isMapOpen = true;
                isDetailsOpenWhenOpenedMap = false;
            }
            else
            {
                FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
                fragmentTransaction.hide(openedDetailsFragment).commit();
                mapFrameLayout.setLayoutParams(fullMapParams);
                isMapOpen = true;
                isDetailsOpenWhenOpenedMap = true;
            }
        }
        else
        {
            LinearLayout.LayoutParams defaultMapparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, 280);
            mapFrameLayout.setLayoutParams(defaultMapparams);
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            if (isDetailsOpenWhenOpenedMap)
            {
                fragmentTransaction.show(openedDetailsFragment).commit();               
            }
            else
            {
                fragmentTransaction.show(closedDetailsFragment).commit();
            }
            isMapOpen = false;
        }
    }
    

    如您所见,我更改了地图所在的FrameLayout的大小,您可以将按钮放在相同的布局中,例如将其放在右上角。当你的地图拉伸时,按钮仍然会在同一个右上角。

答案 1 :(得分:0)

点击全屏幕地图启动新活动,你需要所有按钮/功能..在启动intenet时使用putExtra传递重新加入的参数(例如位置坐标)和瞧...;)