当前位置: 代码迷 >> Android >> libgdx如何整合admob非页内广告之间
  详细解决方案

libgdx如何整合admob非页内广告之间

热度:25   发布时间:2023-08-04 12:23:32.0

我的LibGDX游戏中有Loading \\ Logo屏幕和MainMenu屏幕。 我想在这些屏幕之间展示插页式广告。

我已经用下面的代码做到了这一点,但是问题是:徽标屏幕消失后,主菜单屏幕出现了一秒钟,然后才显示广告-这让我很烦。

我要隐藏徽标屏幕,然后显示广告,然后才显示主菜单屏幕(介于两者之间可以使用黑屏)。 你能告诉我如何到达那里吗?

我的代码现在如下:

主类刚刚启动徽标屏幕:

public class Colorem extends Game {

        //...   

    IActivityRequestHandler h_AndroidActivity;

    public void create() {  

    //init vars...

        //set logo screen
        this.setScreen(new LogoScreen(this));
    }

        //...   
}

徽标屏幕使用AssetManager加载纹理并加载主菜单屏幕:

public class LogoScreen implements Screen {
    private boolean bLoading = false,
            bLoadingFinished = false;

    public LogoScreen(final Colorem game) {
        this.game = game;

        // ...

    }


    @Override
    public void render(float delta) {

        //draw logo...

            //keep loading the resources calling assetManager.update()
            if(UI.assetManager.update()) {


                game.setScreen(new MainMenuScreen(game));


           }
        }

    }

主菜单类别在显示时显示Ad:

public class MainMenuScreen implements Screen {

 //...

        @Override
    public void show() {    
            game.h_AndroidActivity.showInterstitialAd_InGame();
    }


}

我也尝试过从LogoScreen的hide()方法调用广告,但仍然无法获得干净的屏幕->广告->屏幕幻灯片。

好。 您需要在MainActivity中实现AdListener
public class MainActivity extends AndroidApplication implements AdListener
这将给您5种方法

@Override
public void onDismissScreen(Ad arg0) {
    // TODO Auto-generated method stub

}

@Override
public void onFailedToReceiveAd(Ad arg0, ErrorCode arg1) {
    // TODO Auto-generated method stub

}

@Override
public void onLeaveApplication(Ad arg0) {
    // TODO Auto-generated method stub

}

@Override
public void onPresentScreen(Ad arg0) {
    // TODO Auto-generated method stub

}

@Override
public void onReceiveAd(Ad arg0) {
    // TODO Auto-generated method stub

}

当所有资源都加载到LogoScreen中时,显示InterstitialAdd。 现在,在上面显示的onDismissScreen(Ad arg0)方法中显示MainMenuScreen。 另外请记住要在您的非页内广告中添加侦听器,然后添加interstitial.setAdListener(this);

如果是game.setScreen(new MainMenuScreen(game)); onDismissScreen(Ad arg0)内不起作用,那么当调用onDismissScreen()时,您需要使用一个布尔值并将其用于显示mainmenuScreen()。