android-Andengine-从启动画面中删除广告

android-Andengine-从启动画面中删除广告,第1张

概述问题在于XML视图(广告)会在游戏数据加载时(大约5-6秒)出现.如何从启动画面删除广告?将视图添加到布局.XML视图-不可见@OverrideprotectedvoidonSetContentView(){relativeLayout=newRelativeLayout(this);finalFrameLayout.LayoutParamsrelativeLayoutL

问题在于XML视图(广告)会在游戏数据加载时(大约5-6秒)出现.
如何从启动画面中删除广告?

将视图添加到布局. XML视图-不可见

@OverrIDeprotected voID onSetContentVIEw() {     relativeLayout = new relativeLayout(this);     final FrameLayout.LayoutParams relativeLayoutLayoutParams =           new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT,          FrameLayout.LayoutParams.MATCH_PARENT);     this.mRenderSurfaceVIEw = new RenderSurfaceVIEw(this);     this.mRenderSurfaceVIEw.setRenderer( mEngine, this );     final LayoutParams surfaceVIEwLayoutParams = new relativeLayout.LayoutParams(          super.createSurfaceVIEwLayoutParams());     surfaceVIEwLayoutParams.addRule(relativeLayout.CENTER_IN_PARENT);     // XML-vIEw above AndEngine vIEw     LayoutInflater vi = (LayoutInflater) getSystemService(          Context.LAYOUT_INFLATER_SERVICE);     vv = vi.inflate(R.layout.main, null);     vv.bringToFront();     // set XML-vIEw visible!     vv.setVisibility( VIEw.GONE );    // add vIEws to the layout    // AndEngine vIEw    relativeLayout.addVIEw(this.mRenderSurfaceVIEw, surfaceVIEwLayoutParams);    // XML vIEw    relativeLayout.addVIEw(vv, createAdVIEwLayoutParams());    setContentVIEw(relativeLayout, relativeLayoutLayoutParams);}

加载启动画面资源和场景

@OverrIDepublic voID onCreateResources(OnCreateResourcesCallback pOnCreateResourcesCallback) throws Exception {    splashBackgroundTextureAtlas = new BitmapTextureAtlas(getTextureManager(), 480, 800, TextureOptions.NEAREST);    splashBackgroundTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(splashBackgroundTextureAtlas, this, "gfx/splash.png", 0, 0);    mEngine.getTextureManager().loadTexture(splashBackgroundTextureAtlas);    pOnCreateResourcesCallback.onCreateResourcesFinished();}@OverrIDepublic voID onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws Exception {    splashScene = new Scene();    splashScene.setBackgroundEnabled(false);    splashScene.attachChild(new Sprite(0, 0, splashBackgroundTextureRegion, this.getVertexBufferObjectManager()));    pOnCreateSceneCallback.onCreateSceneFinished(splashScene);}

加载游戏资源和场景

@OverrIDepublic voID onPopulateScene(Scene pScene, OnPopulateSceneCallback pOnPopulateSceneCallback) throws Exception {    mEngine.registerUpdateHandler(new TimerHandler(0.01f, new ITimerCallback() {            public voID onTimePassed(final TimerHandler pTimerHandler) {                    mEngine.unregisterUpdateHandler(pTimerHandler);                    loadResources();                    loadScene();                    mEngine.setScene(scene);                }            }));    pOnPopulateSceneCallback.onPopulateSceneFinished();    // set XML-vIEw visible!                    runOnUiThread(new Runnable() {        public voID run() {             vv.setVisibility(VIEw.VISIBLE);        }    });}public voID loadResources() {    // game resources    try {        ITexture backgroundTexture = new BitmapTexture(                this.getTextureManager(), new IinputStreamOpener() {                    @OverrIDe                    public inputStream open() throws IOException {                        return getAssets().open("gfx/bg01.jpg");                    }                });        backgroundTexture.load();        mBackgroundTextureRegion = TextureRegionFactory.extractFromTexture(backgroundTexture);    } catch (IOException e) {    }}public voID loadScene() {    scene = new Scene();    scene.set@R_403_5985@AreaBindingOnActionDownEnabled(true);    // add background to scene    Sprite backgroundSprite = new Sprite(0, 0, this.mBackgroundTextureRegion, getVertexBufferObjectManager());    scene.attachChild(backgroundSprite);    // add sprite to scene    pandaSprite = new Panda( false, TextureControlManager.createTiledTextureRegionFromAsset(            getTextureManager(), this, Panda.ANIMATION_fileS),             getVertexBufferObjectManager());    scene.attachChild(pandaSprite);    scene.attachChild(pandaSprite);    scene.register@R_403_5985@Area(pandaSprite);       }

编辑:
布局main.xml

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:ID="@+ID/footer_layout"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content"    androID:layout_alignParentBottom="true"    androID:gravity="bottom"    androID:orIEntation="vertical" ><com.Google.ads.AdVIEw    xmlns:ads="http://schemas.androID.com/apk/lib/com.Google.ads"    androID:ID="@+ID/adVIEw"    androID:layout_wIDth="fill_parent"    androID:layout_height="wrap_content"    ads:adSize="BANNER"    ads:adUnitID="@string/admob_ID"    ads:loadAdOnCreate="true" /></linearLayout>

堆栈跟踪:

07-31 19:38:27.531: D/AndEngine(4960): MainActivity.onSurfaceCreated @(Thread: 'GLThread 27')07-31 19:38:27.531: D/AndEngine(4960): MainActivity.onCreateGame @(Thread: 'GLThread 27')07-31 19:38:27.531: D/AndEngine(4960): MainActivity.onCreateResources @(Thread: 'GLThread 27')07-31 19:38:27.541: D/AndEngine(4960): MainActivity.onCreateScene @(Thread: 'GLThread 27')07-31 19:38:27.551: D/AndEngine(4960): MainActivity.onPopulateScene @(Thread: 'GLThread 27')07-31 19:38:27.551: D/AndEngine(4960): MainActivity.onGameCreated @(Thread: 'GLThread 27')07-31 19:38:27.551: D/AndEngine(4960): MainActivity.onSurfaceChanged(WIDth=320,  Height=480) @(Thread: 'GLThread 27')07-31 19:38:27.551: D/AndEngine(4960): MainActivity.onResumeGame @(Thread: 'main')07-31 19:38:28.052: D/dalvikvm(4960): GC_FOR_MALLOC freed 127K, 54% free 3307K/7175K, external 20K/512K, paused 39ms07-31 19:38:28.062: I/dalvikvm-heap(4960): Grow heap (frag case) to 6.978MB for 1536016-byte allocation07-31 19:38:28.152: D/dalvikvm(4960): GC_FOR_MALLOC freed 7K, 45% free 4799K/8711K, external 20K/512K, paused 63ms07-31 19:38:28.312: D/dalvikvm(4960): GC_CONCURRENT freed <1K, 45% free 4799K/8711K, external 20K/512K, paused 5ms+8ms07-31 19:38:28.472: D/dalvikvm(4960): GC_EXPliCIT freed 1502K, 63% free 3299K/8711K, external 20K/512K, paused 54ms07-31 19:38:29.173: D/dalvikvm(4960): GC_CONCURRENT freed 200K, 60% free 3526K/8711K, external 40K/512K, paused 4ms+5ms07-31 19:38:29.403: D/dalvikvm(4960): GC_CONCURRENT freed 477K, 60% free 3519K/8711K, external 40K/512K, paused 4ms+31ms 

解决方法:

最好的选择是在游戏开始之前不要加载广告.

从AdVIEw XML定义中删除ads:loadAdOnCreate =“ true”属性.这样,AdVIEw不会自动在onCreate()中加载广告.

准备就绪后,然后在代码中加载带有AdRequest的AdVIEw:

AdVIEw adVIEw = (AdVIEw) findVIEwByID(R.ID.adVIEw);adVIEw.loadAd(new AdRequest());
总结

以上是内存溢出为你收集整理的android-Andengine-从启动画面中删除广告全部内容,希望文章能够帮你解决android-Andengine-从启动画面中删除广告所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1073359.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存