打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

问题在于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.setTouchAreaBindingOnActionDownEnabled(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.registerTouchArea(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());
来源:https://www.icode9.com/content-4-581051.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
代码中动态设置view或布局的宽高
Kotlin中的Android SearchView教程与示例
android 动态创建控件并设置布局
2.5.2 GridView(网格视图)的基本使用 | 菜鸟教程
android开发我的新浪微博客户端-载入页面UI篇(1.1)
Android 动态更改布局
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服