显示在果冻豆上的按钮的Admob广告

时间:2012-09-01 06:32:27

标签: android admob android-4.2-jelly-bean

当我注意到应用程序中的按钮顶部显示Admob广告(Admob SDK 6.1.0)时,我正在测试应用程序与Jelly Bean的兼容性。我正在使用的布局是:

        <ImageView android:id="@+id/line"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/spinner"
            android:maxWidth="350sp"
            android:layout_marginTop="5dip"
            android:layout_centerHorizontal="true"
            android:src="@drawable/line"/>
        <View android:id="@+id/ad" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:layout_below="@id/line"
            android:layout_marginTop="5dip"
            android:layout_marginBottom="5dip"/>
        <Button android:id="@+id/generate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/ad"
            android:layout_centerHorizontal="true"
            android:textStyle="bold"
            android:textColor="#000000"
            android:text="@string/generate"/>

当广告加载时,它会显示在按钮顶部。在以前版本的Android(ICS及更早版本)中,广告会加载,按下该按钮以容纳广告。有谁知道如何在Jelly Bean上恢复这个功能?谢谢!

1 个答案:

答案 0 :(得分:0)

我解决此问题的方法是实施AdListener界面,以便在加载广告时手动设置按钮的上边距。这会将按钮向下移动并防止其被广告遮盖。

@Override
public void onReceiveAd(Ad arg0) {      
    // Move the generate button down by the height of the ad on load
    MarginLayoutParams params = (MarginLayoutParams)generateBtn.getLayoutParams();
    params.topMargin = AdSize.BANNER.getHeightInPixels(this);
    generateBtn.setLayoutParams(params);
}

由于此问题仅发生在Jelly Bean上,因此只有在Jelly Bean上运行时才设置AdListener

if(Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN)
    ad.setAdListener(this);