2

我想在我的游戏应用中添加 admob 广告。然而,游戏绘图全部在代码中,没有布局,只是游戏绘制的 Surfaceview。

我不能使用 layout.addView(adView); 文档以示例为例,因为我的游戏没有使用布局,实际上布局文件夹已被删除。

在主要活动中,我定义了一个游戏面板:

gamepanel=new MainGamePanel(this);

游戏面板被实例化:

类 MainGamePanel 扩展 SurfaceView 实现 SurfaceHolder.Callback

然后我只是使用 Canvas 绘制方法直接绘制到表面视图。

那么如何将我在活动中创建的 adView 对象添加到surfaceview:

adView = new AdView(this, AdSize.BANNER, "MY_PUU_NUMBER");

gamepanel.addView(adView) 不起作用。也许我会被迫从一开始就为此使用布局,但这会使事情复杂化。

4

1 回答 1

1

我发现将 admob 广告添加到 surfaceView 应用程序的最佳解决方法是以编程方式创建布局并将两个视图绘制到它,如下所示:

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);

ll.addView(adView); // The ad banner
ll.addView(gamepanel); // The SurfaceView object

它实际上并没有将 adView 绘制到 surfaceView,但这是我发现包含它的最佳方式。

请注意,横幅广告会减慢您的帧速率,因此请谨慎行事。不幸的是,如果您的公司名称不是史克威尔艾尼克斯,现在很难让安卓游戏玩家为游戏支付 0.99 的预付费用,因此广告可能是一种必要的邪恶。

于 2013-08-27T02:33:44.143 回答