Android在运行时更改谷歌地图填充

时间:2014-03-08 09:57:00

标签: android google-maps padding inmobi

我想在运行时移动Google地图布局项目,但我无法做到这一点,我不知道它是否可能。 我想要做的是:我有一个谷歌地图片段占据了所有的屏幕。我也有广告。当应用程序启动时,我会显示地图。像这样:

enter image description here

广告加载时,我会在底部显示广告,但我需要在广告上方移动Google徽标。像这样:

enter image description here

我试过了:

if (banner is loaded)
googleMap.setPadding(0, 0, 0, banner.getLayoutParams().height);

但我没有成功。我做错了什么?

编辑: 感谢@SimplePlan,我更改了RelativeLayout,其中包含mapfragment到FrameLayout:

<FrameLayout >
    <fragment
        android:id="@+id/map"
        class="com.google.android.gms.maps.SupportMapFragment" />

    <com.inmobi.monetization.IMBanner
        android:layout_gravity="bottom" />
</FrameLayout>

我在广告中添加了一位听众:

banner.setIMBannerListener(new IMBannerListener() {
    @Override
    public void onBannerRequestSucceeded(IMBanner arg0) {
        googleMap.setPadding(0, 0, 0, banner.getLayoutParams().height);
    }
});

1 个答案:

答案 0 :(得分:14)

只要布局过程没有完成,视图的维度就会设置为0.使用Handler,您可以在布局完成后设置地图的填充。

    new Handler().post(new Runnable() {
        @Override
        public void run() {
            mapHelper.map.setPadding(0,0,0,ad.getHeight());
        }
    });