当前位置: 首页 > 面试题库 >

如何在LibGDX And​​roid项目中实施AdMob广告?

司空均
2023-03-14
问题内容

我找到了这个Flappy Bird GIT项目:https : //github.com/barodapride/flappy-tutorial-
barodapride

如何在其中实现BannerAd?没有布局文件。以及如何实施InterstitialAd?如果我尝试写

public InterstitialAd mInterstitialAd;

然后说“无法解析符号InterstitialAd”

我知道如何在普通的Android Studio项目中执行此操作,但这是我第一次使用libGDX,它是如此复杂…


问题答案:

我在这里回答了,如何将AdMob标语广告集成到LibGDX项目中。

现在,我InterstitialAd在横幅广告集成之后回答集成。

private static final String AD_UNIT_ID_INTERSTITIAL = "ca-app-pub-XXXXX/XXXXX";

private InterstitialAd interstitialAd;

@Override
protected void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ...
    ...

    interstitialAd = new InterstitialAd(this);
    interstitialAd.setAdUnitId(AD_UNIT_ID_INTERSTITIAL);
    interstitialAd.setAdListener(new AdListener() {
          @Override
          public void onAdLoaded() {}

          @Override
          public void onAdClosed() {
             loadIntersitialAd();
          }
    });

    loadIntersitialAd();
}


private void loadIntersitialAd(){

    AdRequest interstitialRequest = new AdRequest.Builder().build();
    interstitialAd.loadAd(interstitialRequest);
}

@Override 
public void showOrLoadInterstitial() {

     runOnUiThread(new Runnable() {
            public void run() {
                if (interstitialAd.isLoaded()) 
                     interstitialAd.show();                         
                else 
                     loadIntersitialAd();           
            }
      });
}

需要一个showOrLoadInterstitial从核心模块调用的接口,因此我IActivityRequestHandler在核心模块内部创建了该接口并实现AndroidLauncher了android模块的接口。

public interface IActivityRequestHandler {

     void showOrLoadInterstitial();
}

编辑

您不能showOrLoadInterstitial()使用类/接口名称调用非静态方法,它需要已IActivityRequestHandler实现类的对象,因此请创建MyGdxGameandroid模块的参数化构造函数并传递引用。

 public class AndroidLauncher extends AndroidApplication implements IActivityRequestHandler  {

   @Override
   protected void onCreate (Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       View gameView=initializeForView(new MyGdxGame(this));
       ....
       ....
   }

捕获游戏IActivityRequestHandler内部MyGdxGame类的参考

public class MyGdxGame extends Game {

   Public IActivityRequestHandler requestHandler;

   public MyGdxGame(IActivityRequestHandler requestHandler){
       this.requestHandler=requestHandler;
   }

   ...
}

现在您有了对象引用,可以调用 requestHandler.showOrLoadInterstitial()



 类似资料:
  • 本文向大家介绍如何实施区块链项目?相关面试题,主要包含被问及如何实施区块链项目?时的应答技巧和注意事项,需要的朋友参考一下 回答:**请按照以下步骤实施区块链项目。 选择你的平台 初始化区块链 选择正确的共识协议 执行您的第一个智能合约 调试和扩展

  • 项目build.gradle 应用程序生成。格拉德尔 ... 设置梯度

  • 我的广告不显示。 我正在开发一个需要广告的应用程序。目前正在进行测试,我在Google Play console的内部测试轨道上对该应用程序进行封闭测试。因此,我无法将其链接到Admob中Play store中的应用程序。 所以,为了测试它们,我一直是示例测试广告单元,特别是间隙广告和奖励视频广告。它们加载良好。 今天,我决定切换到生产广告,因为我想发布该应用程序。所以,我为奖励和互动创建了新的广

  • 在Perl中,使用Moo,可以围绕sub实现sub,它将围绕类中的其他方法。 如何在Raku中实现这种行为,最好使用角色?

  • 问题内容: 我需要更新状态行编辑器特定的信息。我已经有自己的实现,但是我想看看蚀贡献项目是如何实现的,它显示了状态行中行号/列位置的实现。谁能指出我在哪里可以找到源代码? 预先感谢AlexG。 问题答案: 我一直在研究它,它涉及很多,而且我不确定我是否有完整的图片,但是万一这对某人有帮助… 将编辑器与对StatusLine(以及菜单和工具栏)的贡献绑定在一起的声明方式是通过IEditorActio

  • 广告只有在应用程序启动前启用WI-FI时才显示(如果在应用程序会话期间启用WI-FI时不会显示)。如何在可能的时候加载Admob广告?我相信,这和AdListener有关。我的当前代码: