Android 如何以编程方式更改宽度&;谷歌地图v2的高度(支持片段)?

Android 如何以编程方式更改宽度&;谷歌地图v2的高度(支持片段)?,android,android-fragments,android-maps-v2,Android,Android Fragments,Android Maps V2,如何通过编程更改com.google.android.gms.maps.SupportMapFragment的宽度和高度?我想你可能可以用match_parent将它包装在一个视图组中,但如果不需要的话,我希望不要嵌套(老实说,我甚至不确定它是否有效) 任何帮助都会很好 这是一个使用onConfigurationChanged()方法的示例: @Override public void onConfigurationChanged(Configuration newConfig) { s

如何通过编程更改com.google.android.gms.maps.SupportMapFragment的宽度和高度?我想你可能可以用match_parent将它包装在一个视图组中,但如果不需要的话,我希望不要嵌套(老实说,我甚至不确定它是否有效)


任何帮助都会很好

这是一个使用
onConfigurationChanged()
方法的示例:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.main);
    findViewById(R.id.storefront_map).getLayoutParams().width = 400;
}

我主要是在老师的帮助下弄明白的


你不应该固定地图的高度。。。根据屏幕高度和宽度进行设置

DisplayMetrics displaymetrics = new DisplayMetrics();
        getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
        int height = displaymetrics.heightPixels;

        ViewGroup.LayoutParams params = mMapFragment.getView().getLayoutParams();
        params.height = height/2;
        mMapFragment.getView().setLayoutParams(params);
我发现的最快(代码行更少)的方式:

ViewGroup.MarginLayoutParams parms = (ViewGroup.MarginLayoutParams) rlLocation.getLayoutParams();
    parms.bottomMargin = 100;
    parms.topMargin = 100;

我更新了我的问题,为我想做的事情提供了更好的背景。通常情况下,您会希望调整地图的大小以适应其他元素。如果元素有一个固定的大小,就像在我的例子中一样,最好将边距设置为插入元素的大小。好消息,谢谢。
mMapFragment = (SupportMapFragment) (getSupportFragmentManager()
            .findFragmentById(R.id.storefront_map));
ViewGroup.LayoutParams params = mMapFragment.getView().getLayoutParams();
params.height = 900;
mMapFragment.getView().setLayoutParams(params);
DisplayMetrics displaymetrics = new DisplayMetrics();
        getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
        int height = displaymetrics.heightPixels;

        ViewGroup.LayoutParams params = mMapFragment.getView().getLayoutParams();
        params.height = height/2;
        mMapFragment.getView().setLayoutParams(params);
ViewGroup.MarginLayoutParams parms = (ViewGroup.MarginLayoutParams) rlLocation.getLayoutParams();
    parms.bottomMargin = 100;
    parms.topMargin = 100;