当我注意到应用程序中的按钮顶部显示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上恢复这个功能?谢谢!
答案 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);