1

为了即使手机离线也能控制广告的存在,我将 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 后通过处理程序将其隐藏。

4

1 回答 1

0

您可以做的是将广告包含在您的布局中,然后根据您是否希望广告出现来切换其可见性。

//To show the view
adView.setVisibility(View.VISIBILE);

//To hide the view
adView.setVisibility(View.GONE);

您也可以尝试使用当前代码在 AdView 上调用 bringToFront()。

于 2012-08-09T13:59:19.537 回答