我在我的libgdx项目中添加了admob而没有任何问题但是如何在游戏中禁用admob。我有2个屏幕(MainMenu和PlayScreen),我希望广告只在MainMenu上显示。
我发现了一篇关于在libgdx中控制广告的文章,但问题是本文适用于桌面而不是Android。
https://code.google.com/p/libgdx/wiki/AdMobInLibgdx (注意:问题部分来自于使用已弃用的文档,https://github.com/libgdx/libgdx/wiki/Admob-in-libgdx提供的更新版本)
答案 0 :(得分:1)
看看#control at the new wiki。 Android项目中包含2个最终静态值:
public class HelloWorldAndroid extends AndroidApplication {
private final int SHOW_ADS = 1;
private final int HIDE_ADS = 0;
protected Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg) {
switch(msg.what) {
case SHOW_ADS:
{
adView.setVisibility(View.VISIBLE); //change to visible
break;
}
case HIDE_ADS:
{
adView.setVisibility(View.GONE);//change to not visible
// you should also disable the ad fetching here!
break;
}
}
}
};
所以如果你调用方法:(它被解析为核心项目的接口)
public interface IActivityRequestHandler {
public void showAds(boolean show);
}
public class HelloWorldAndroid extends AndroidApplication implements IActivityRequestHandler {
...
// This is the callback that posts a message for the handler
@Override
public void showAds(boolean show) {
handler.sendEmptyMessage(show ? SHOW_ADS : HIDE_ADS);
}
它向处理程序发送一条消息,激活或禁用该admob。 showAds
的接口被传递给核心项目,因此您可以保留对它的引用并使用它。要查看其工作原理,请查看接口文章plattformspec code。
只是为了表明这一点:
View gameView = initializeForView(new HelloWorld(this), false); // and "this" is the mainclass of the android project which implements the IActivityRequestHandler interface shown above
//the HelloWorld(this) is the core project where you now can save the `IActivityRequestHandler` as referance and call the showAds(bool)
但最后如果你已经阅读了这篇论文,你应该知道这一切。