2015-04-13 3 views
0

Я использую andengine для разработки своей игры с сервисами google play, моя игра отлично работает. Но как только я добавил admob с вызванным обратным вызовом onSetContentView, мой экран игры становится черным, и видны только объявления. Вот мой callback onSetContentView:Невозможно отобразить экран игры, в то время как admob интегрирован с AndEngine + сервисом Google Play

@override 
protected void onSetContentView() { 
    this.mRenderSurfaceView = new RenderSurfaceView(this); 
    this.mRenderSurfaceView.setRenderer(mEngine, this); 
    final android.widget.FrameLayout.LayoutParams surfaceViewLayoutParams = new FrameLayout.LayoutParams(super.createSurfaceViewLayoutParams()); 
    Log.i(TAG,"In funcion OnSetContaitView"); 
    //Creating the banner view. 
    AdView adView = new AdView(this); 
    adView.setAdSize(com.google.android.gms.ads.AdSize.BANNER); 
    adView.setAdUnitId("my adunit id"); 

    //create add req 
    AdRequest adRequest = new AdRequest.Builder() 
     .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)// This is for emulators 
      //test mode on DEVICE (this example code must be replaced with your device uniquq ID) 
     .addTestDevice("2EAB96D84FE62876379A9C030AA6A0AC") // Nexus 5 
     .addTestDevice("TA93303NP9") 
     .build(); 


    adView.loadAd(adRequest); 
    final FrameLayout.LayoutParams adViewLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM); 


    final FrameLayout frameLayout = new FrameLayout(this); 
    final FrameLayout.LayoutParams frameLayoutLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.FILL_PARENT); 

    frameLayout.addView(this.mRenderSurfaceView,surfaceViewLayoutParams); 
    frameLayout.addView(adView,adViewLayoutParams); 
    this.setContentView(frameLayout, frameLayoutLayoutParams); 
    adView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

} 

В настоящее время я могу видеть либо экран игры, либо рекламу. Пожалуйста, предложите, как получить экран игры вместе с объявлениями.

Спасибо заранее.

+0

я не знаю, если это будет ответить на ваш вопрос, но вы используете 'FrameLayout', что он делает это закладывает' View' на верхней части друг с другом так, либо addview поверх игрового пространства, либо наоборот, и вы используете 'Fill_parent', почему бы не wrap_content или вообще не использовать' LinearLayout'? потому что ваш тип 'addView' -' Smart_Banner', поэтому его высота равна 50dp. im i lucid Sir? – Elltz

ответ

1

Try код я использую:

@Override 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.activity_main); 

    final DisplayMetrics displayMetrics = new DisplayMetrics(); 
    this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 


    this.adView = new AdView(this); 
    this.adView.setAdSize(com.google.android.gms.ads.AdSize.SMART_BANNER); 
    this.adView.setAdUnitId("PUT YOUR NUMBER"); 
    com.google.android.gms.ads.AdRequest adrequest = new com.google.android.gms.ads.AdRequest.Builder().build(); //you can use test device as you did in your code 


    this.adView.loadAd(adrequest); 

    RelativeLayout layout = (RelativeLayout)findViewById(R.id.relativeLayout); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); 


    layout.addView(this.mRenderSurfaceView); 



    layout.addView(this.adView, params); 

} 
Смежные вопросы