我刚开始写这本书:开始Android游戏,我已经遇到了一个问题。在示例游戏中,我们不使用 main.xml
但如果没有它,我就无法实现 AdMob。
有没有人读过这本书,并在他们的游戏中成功实现了AdMob?
这是我的代码:
public abstract class AndroidGame extends Activity implements Game {
private AdView adView;
AndroidFastRenderView renderView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
renderView = new AndroidFastRenderView(this, frameBuffer);
setContentView(renderView);
adView = new AdView(this, AdSize.BANNER, "a14e3af977eb71a");
LinearLayout layout = (LinearLayout)findViewById(R.id.admob_test);
layout.addView(adView);
adView.loadAd(new AdRequest());
}
我希望有人能帮助我。
如果你看这条线
setContentView(renderView);
您正在将内容视图设置为任何呈现视图。该类扩展了SurfaceView。这意味着您将 SurfaceView 设置为内容视图,而不是 LinearView 或 RelativeView。
如果你在谷歌上快速搜索"admob and surfaceview",你可能会遇到这个链接:
表面视图上的广告
我通过执行以下操作在我的应用程序上工作:
adView = new AdView(this, AdSize.BANNER, "<enter your admob ID here>");
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
adView.setLayoutParams(lp);
RelativeLayout layout = new RelativeLayout(this);
layout.addView(renderView);
layout.addView(adView);
adView.loadAd(new AdRequest());
setContentView(layout);
//setContentView(renderView);
我不需要更改 xml 文件中的布局。
我花了一天的时间试图弄清楚这一点。这是一个艰难的过程,但我希望这有所帮助。
不必使用 main.xml 来实现 adMob,您也可以在 Java 中以编程方式创建 adView
编辑:再次检查链接,一切都在那里:
添加横幅所需的五行代码:
- Import com.google.ads.*
- 声明 AdView 实例
- 创建它,并指定一个单元 ID,即您的 AdMob 发布商 ID
- 将视图添加到 UI
- 用广告加载它
我想你在XML中定义了一个布局,其中你有一个id admob_test的LinearLayout,你正在将adView添加到该布局中,很好。
但在此之前,您将活动设置为使用 AndroidFastRenderView 作为 ContentView,因此不会显示 LinearLayout。
尝试将 AdView 直接添加到主视图,或将活动设置为使用 LinearLayout 作为内容视图。