即使手机处于离线状态,我也可以控制广告的存在 将adob广告添加到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-5px的顶部可见。
编辑2:事实证明,问题是由隐藏在onCreate中的广告布局引起的。解决方法是在执行onCreate后通过处理程序隐藏它。
答案 0 :(得分:0)
您可以做的是在广告中添加广告,然后根据您是否要展示广告来切换广告的可见性。
//To show the view
adView.setVisibility(View.VISIBILE);
//To hide the view
adView.setVisibility(View.GONE);
您还可以尝试使用当前代码调用AdView上的bringToFront()。