现在我正在调用我的gamecanvas:
GameCanvas gameCanvas;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gameCanvas = new GameCanvas(getApplicationContext());
gameCanvas.setBackgroundColor(Color.DKGRAY);
setContentView(gameCanvas);
}
在我的main.xml中我得到了
`<com.google.android.gms.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="ca-app-pub-ID"
ads:adSize="BANNER"/>`
如果我将contentView设置为我的main.xml,我可以得到一个添加显示为
AdView adView = (AdView) this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().addTestDevice("DEVICE ID").build();
adView.loadAd(adRequest);
那么如何在画布上添加一个admob横幅广告?
编辑:
如果我添加
<mb.jet.game.GameCanvas android:id="@+id/vMain"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
到我的xml我收到错误
无法启动活动ComponentInfo {mb.jet.game/mb.jet.game.MyActivity}:android.view.InflateException:二进制XML文件行#12:错误膨胀类mb.jet.game.GameCanvas
答案 0 :(得分:1)
这是我要做的。将您的gamecanvas放入片段中。通过FrameLayout动态地将您的片段添加到您的活动中。将FrameLayout放在RelativeLayout中。将Admob xml内容放入relativelayout中。这一切都变得简单,因为您可以相对于您的广告定位您的游戏扫描。我认为你的gamecanvas是一个GLSurfaceView(可能是错误的)?无论如何,您都可以使用xml创建视图。
完成所有操作后,将以下属性添加到admob xml引用...
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
添加到您的framelayout
android:layout_above ="@+id/adView"
您还可以使用addContentView向布局添加视图,但如果您问我最好使用Fragments。 =)
答案 1 :(得分:1)
我最终将所有内容都设置为相对布局,以便我的XML看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, MyActivity"
/>
<RelativeLayout android:id="@+id/vMain"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.gms.ads.AdView android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
ads:adUnitId="ca-app-pub-2945740687682775/6253169713"
ads:adSize="BANNER"/>
</RelativeLayout>
</RelativeLayout>
之后我将画布视图添加到相对布局,然后将广告添加到
setContentView(R.layout.main);
RelativeLayout layout = (RelativeLayout)findViewById(R.id.vMain);
layout.addView(gameCanvas);
AdView adView = (AdView) this.findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().addTestDevice("91BA1C88FB7946232E39E67D0C066208").build();
adView.loadAd(adRequest);
我不确定这是最好的解决方案,还是其他人发布的内容,我只是误解了,所以我会暂时搁置这个问题。