如何将drawView绘制到SurfaceView画布

时间:2013-08-24 22:08:27

标签: android surfaceview adview

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

我不能用 layout.addView(AD浏览); 文档给出了一个例子,因为我的游戏不使用布局,实际上布局文件夹被删除了。

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

gamepanel = new MainGamePanel(this);

游戏面板被实例化:

类MainGamePanel扩展了SurfaceView实现的SurfaceHolder.Callback

然后我使用Canvas绘制方法直接绘制到surfaceview。

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

adView =新AdView(此广告,AdSize.BANNER,“MY_PUU_NUMBER”);

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

1 个答案:

答案 0 :(得分:2)

我发现将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,但这是我发现包含它的最佳方式。

请注意,横幅广告会降低您的帧速率,因此请务必谨慎。不幸的是,如果你的公司名称不是Square Enix,那么很难让安卓游戏玩家在游戏中预先支付0.99,因此广告可能是必要的恶魔。