Displaying Ad In AndEngine

前端 未结 1 612
被撕碎了的回忆
被撕碎了的回忆 2021-01-02 18:01

I am trying to display an advertisement using Greystrip in AndEngine.

I cannot figure out how this is done because it doesnt use a Layout to inflate views, but yet s

相关标签:
1条回答
  • 2021-01-02 18:51

    I'm using AdMob but it should be similar.

    Like @Sergey Benner referenced, you have to override onSetContentView in your activity, then create the RenderSurfaceView and your ad view manually.

    First of all, create a FrameLayout to contain AndEngine's view and the ad view. Add AndEngine's view and create your ad view, then set the frame layout as the content view.

    @Override
    protected void onSetContentView() {
        //Creating the parent frame layout:
        final FrameLayout frameLayout = new FrameLayout(this);
        //Creating its layout params, making it fill the screen.
        final FrameLayout.LayoutParams frameLayoutLayoutParams =
                new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,
                        FrameLayout.LayoutParams.FILL_PARENT);
    
        //Creating the banner view.
        BannerView bannerView = new BannerView(this);
    
        //....
        //Do any initiallizations on the banner view here.
        //....
    
        //Creating the banner layout params. With this params, the ad will be placed in the top of the screen, middle horizontally.
        final FrameLayout.LayoutParams bannerViewLayoutParams =
                new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,
                        FrameLayout.LayoutParams.WRAP_CONTENT,
                        Gravity.TOP | Gravity.CENTER_HORIZONTAL);
    
        //Creating AndEngine's view.
        this.mRenderSurfaceView = new RenderSurfaceView(this);
        mRenderSurfaceView.setRenderer(mEngine, this);
    
        //createSurfaceViewLayoutParams is an AndEngine method for creating the params for its view.
        final android.widget.FrameLayout.LayoutParams surfaceViewLayoutParams =
                new FrameLayout.LayoutParams(super.createSurfaceViewLayoutParams());
    
        //Adding the views to the frame layout.
        frameLayout.addView(this.mRenderSurfaceView, surfaceViewLayoutParams);
        frameLayout.addView(bannerView, bannerViewLayoutParams);
    
        //Setting content view
        this.setContentView(frameLayout, frameLayoutLayoutParams);
    }
    

    Place this method in your BaseGameActivity class.

    0 讨论(0)
提交回复
热议问题