我创建了一个包含新广告sdk的Android应用,但它是隐身的。我在以前的应用程序中使用它,它在那里工作得很好。现在,在我的新应用程序中,我也做了同样的事情。但是:
AdView不可见,但可点击。如果你回到你的主屏幕(只需最小化,不要停止!),然后重新打开它,广告就会显示出来。
我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.android.gms.ads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:orientation="vertical" >
<org.andengine.opengl.view.RenderSurfaceView
android:id="@+id/SurfaceViewId"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:gravity="center" />
<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adViewId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:adUnitId="XXX"
ads:adSize="BANNER" />
</RelativeLayout>
我的onCreate方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
adView = (AdView) findViewById(R.id.adViewId);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
}
编辑: 60秒后,视图变为可见。
答案 0 :(得分:2)
你的问题是你告诉你RenderSurfaceView matchParent forits height。这意味着它将占用其父级的所有空间,而不会为AdView留下任何空间。
请改为尝试:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.android.gms.ads"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
android:orientation="vertical" >
<org.andengine.opengl.view.RenderSurfaceView
android:id="@+id/SurfaceViewId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center" />
<com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adViewId"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId="XXX"
ads:adSize="BANNER" />
</LinearLayout>
这使用layout_weight和LinearLayout来扩展RenderSurfaceView以填充所有未使用的垂直空间。
答案 1 :(得分:0)
也许你忘了实施这些重要的方法
public void onPause() {
super.onPause();
this.adView.pause();
}
public void onResume() {
super.onResume();
this.adView.resume();
}