Android 如何隐藏广告?

Android 如何隐藏广告?,android,admob,andengine,Android,Admob,Andengine,您好,我使用下面的代码在游戏中显示广告,效果很好,但我在GameActivity.java中创建了此横幅(setContentView())。我有gamesene.java。有时候我想把这条横幅藏起来。那么,如何从GameSecene.java访问“adView”变量(位于GameActivity.java中) 我有一个活动GameActivity.java和其他场景(gameScene、menuScene…)。 我想在我的菜单场景中显示横幅,但我也想在游戏场景中隐藏它 @覆盖 @Suppres

您好,我使用下面的代码在游戏中显示广告,效果很好,但我在
GameActivity.java
中创建了此横幅(
setContentView()
)。我有
gamesene.java
。有时候我想把这条横幅藏起来。那么,如何从GameSecene.java访问“adView”变量(位于GameActivity.java中)

我有一个活动GameActivity.java和其他场景(gameScene、menuScene…)。 我想在我的菜单场景中显示横幅,但我也想在游戏场景中隐藏它

@覆盖
@SuppressLint(“新API”)
受保护的void onSetContentView(){
super.onSetContentView();
最终框架布局=新框架布局(本);
最终FrameLayout.LayoutParams frameLayoutLayoutParams=新FrameLayout.LayoutParams(
FrameLayout.LayoutParams.MATCH_父级,FrameLayout.LayoutParams.MATCH_父级,Gravity.FILL);
final FrameLayout.LayoutParams adViewLayoutParams=新建FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_内容,
FrameLayout.LayoutParams.WRAP_内容,Gravity.LEFT | Gravity.TOP);
adView=新adView(本);
咨询意见集(“XXXXXXXXXXXX”);
adView.setAdSize(AdSize.BANNER);
adView.setVisibility(adView.VISIBLE);
adView.refreshDrawableState();
AdRequest AdRequest=新建AdRequest.Builder().addTestDevice(AdRequest.DEVICE\u ID\u EMULATOR.build();
adView.loadAd(adRequest);
if(android.os.Build.VERSION.SDK\u INT>android.os.Build.VERSION\u code.GINGERBREAD\u MR1){
adView.setLayerType(View.LAYER\u TYPE\u软件,空);
}
this.mRenderSurfaceView=新的RenderSurfaceView(this);
setRenderer(mEngine,this);
最终FrameLayout.LayoutParams SurfaceView布局参数=新建FrameLayout.LayoutParams(
android.view.ViewGroup.LayoutParams.MATCH_父级,android.view.ViewGroup.LayoutParams.MATCH_父级);
surfaceViewLayoutParams.gravity=gravity.CENTER;
frameLayout.addView(this.mRenderSurfaceView,surfaceViewLayoutParams);
frameLayout.addView(adView、adViewLayoutParams);
此.setContentView(frameLayout,FrameLayoutParams);
}

如果要隐藏它,只需调用
adView.setVisiblity(View.GONE)
。如果您想再次显示它,请调用
adView.setVisiblity(View.VISIBLE)

按照Alesandro的建议执行


将对活动的引用传递到游戏场景中,并使用该引用调用findViewById以获取建议。

SkinWalker,我在安德林论坛上阅读了你的帖子,在这里,我遇到了相同的问题,但Androidacct为我解决了它。阅读这篇文章:

我希望它能帮助你

编辑:

这就是它对我的帮助: 在BaseGameActivity中添加以下代码:

public void showAds() {
            this.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                            adView.setVisibility(View.VISIBLE);
                            AdRequest adRequest = new AdRequest.Builder().addTestDevice(
                                            AdRequest.DEVICE_ID_EMULATOR).build();
                            adView.loadAd(adRequest);
                    }
            });
    }

    public void hideAds() {
            this.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                            adView.setVisibility(View.INVISIBLE);
                    }
            });
    }
ResourcesManager.getInstance().activity.hideAds();
您必须使用以下代码从场景中调用它:

public void showAds() {
            this.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                            adView.setVisibility(View.VISIBLE);
                            AdRequest adRequest = new AdRequest.Builder().addTestDevice(
                                            AdRequest.DEVICE_ID_EMULATOR).build();
                            adView.loadAd(adRequest);
                    }
            });
    }

    public void hideAds() {
            this.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                            adView.setVisibility(View.INVISIBLE);
                    }
            });
    }
ResourcesManager.getInstance().activity.hideAds();
我建议您阅读本教程:


致以最良好的祝愿

如何从游戏场景中获取“adView”变量?什么是游戏场景?片段?不,它只是我的游戏GameSecene的a类场景。java扩展BaseSecene您可以在GameSecene中定义一个接口,该接口由您的活动实现。创建对象游戏场景时,传递接口的引用,然后在需要时调用该接口方法(在活动中定义),隐藏在GameActivity中创建实例的横幅,在我的游戏场景中使用GameActivity.getInstance().adView.setVisibility(View.Gone);这会导致一个错误。我不能创建一个界面,因为游戏场景必须是抽象的,这也会导致错误。你没有给我们足够的信息来回答这个问题。什么是游戏场景,基本场景?它们是如何产生的?为什么你找不到adView?GameSecene是我的场景,用户在其中玩杀死怪物等等BaseSecene只是一个类,我的所有场景都在那里扩展。你可以找到一些方法,它们在所有场景中都有,比如onBackKeyPressed()、CreateSecene()、disposeScene()、onResume()等等。。我找不到adView,因为变量是在另一个.java文件GameActivity中创建的,它在GameSecene.java中不可见,因为它在另一个包中,我刚刚创建和实例以再次获取变量和异常