开始Android游戏和AdMob



我刚开始写这本书:开始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

编辑:再次检查链接,一切都在那里:

添加横幅所需的五行代码:

  1. Import com.google.ads.*
  2. 声明 AdView 实例
  3. 创建它,并指定一个单元 ID,即您的 AdMob 发布商 ID
  4. 将视图添加到 UI
  5. 用广告加载它

我想你在XML中定义了一个布局,其中你有一个id admob_test的LinearLayout,你正在将adView添加到该布局中,很好。

但在此之前,您将活动设置为使用 AndroidFastRenderView 作为 ContentView,因此不会显示 LinearLayout。

尝试将 AdView 直接添加到主视图,或将活动设置为使用 LinearLayout 作为内容视图。

最新更新