为了即使手机离线也能控制广告的存在,我将 admob 广告放入 LinearLayout 中,它采用框架布局,因此广告将显示在游戏顶部。在 HTC Desire(2.2) 上,视图正确显示 广告位于屏幕顶部,但在三星 Galaxy SII(2.3.1) 上,广告位于游戏下方 - 它不可见,但如果按下该区域将触发广告操作.
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:id="@+id/game"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
<LinearLayout
android:id="@+id/ads"
android:layout_width="match_parent"
android:layout_height="50dp"
android:background="@color/black"
android:orientation="vertical" >
</LinearLayout>
</FrameLayout>
加载广告的代码:
private void loadAds() {
LinearLayout layout = (LinearLayout) findViewById(R.id.ads);
final AdView adView = new AdView(this, AdSize.BANNER, ADMOB_ID);
layout.addView(adView);
final AdRequest request = new AdRequest();
adView.loadAd(request);
}
编辑:添加 bringToFront() 没有帮助。在 SII 上,未完全隐藏的广告有大约 3-5 像素的顶部可见。
编辑 2:原来问题是由于在 onCreate 中隐藏广告布局引起的。解决方案是在执行 onCreate 后通过处理程序将其隐藏。