现在我这样调用我的 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);
那么如何在 Canvas 上添加 admob 横幅广告呢?
编辑:
如果我添加
<mb.jet.game.GameCanvas android:id="@+id/vMain"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
到我的 xml 我得到错误
无法启动 Activity ComponentInfo{mb.jet.game/mb.jet.game.MyActivity}:android.view.InflateException:二进制 XML 文件第 12 行:错误膨胀类 mb.jet.game.GameCanvas
最佳答案
这是我会做的。将您的游戏 Canvas 放入 fragment 中。通过 FrameLayout 将 fragment 动态添加到 Activity 中。将 FrameLayout 放在 RelativeLayout 中。将 Admob xml 内容也放在 relativelayout 中。这一切都变得简单了,因为您可以相对于您的广告定位您的游戏 Canvas 。我假设您的 gamecanvas 是 GLSurfaceView(可能是错误的)?不管怎样,您都可以使用 xml 创建 View 。
完成所有操作后,将以下属性添加到您的 admob xml 引用中......
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
添加到你的框架布局
android:layout_above ="@+id/adView"
您还可以使用 addContentView 将 View 添加到您的布局,但如果您问我,最好使用 fragment 。 =)
关于java - 在 Canvas 上展示广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25127534/