微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

Android v4.0.4
Google Map API V2

解决方法

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

>创建一个新的活动,按下按钮将开始,并将包括一个全屏地图.在此活动中创建相同的按钮,将您带回原始活动.
>您可以在同一窗口中以编程方式将布局宽度更改为MapFragment的长度.

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

更新:

关于第二个选项这里是我写的代码放大地图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的大小,您可以将按钮放在相同的布局中,例如将其放在右上角.当你的地图拉伸时,按钮仍然会在同一个右上角.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐