Center MoPub baner en SurfaceView

Me gustaría añadir anuncio MoPub en mi juego para Android. El juego se crea en la clase SurfaceView. No tengo ningún archivo de diseño xml. El problema es que no puedo centrar el anuncio en la pantalla. Intento centro y gravedad todo. Todavía no funciona. MoPubView amplía FrameLayout.

MoPubView mAdView = new MoPubView(this); mAdView.setAdUnitId("_MY__ID_"); mAdView.loadAd(); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL); RelativeLayout mRelativeLayout = new RelativeLayout(this); mRelativeLayout.setGravity(Gravity.CENTER_HORIZONTAL); mRelativeLayout.addView(mSurface); mRelativeLayout.addView(mAdView, layoutParams); mRelativeLayout.invalidate(); setContentView(mRelativeLayout); 

Por favor, aconsejarme algo porque me dibujo loco. Siento que estoy perdiendo algo fácil.

    3 Solutions collect form web for “Center MoPub baner en SurfaceView”

    No se puede centrar el contenido directamente en MoPub, o al menos no he encontrado una manera de hacerlo. Se basa en FrameLayout.

    Tienes que centrar el anuncio en HTML. Si está utilizando código HTML personalizado dentro de su campaña de MoPub, simplemente envuelva el código dentro de <div style="text-align:center">...</div> . (Haga esto a través de la web de administración de MoPub). Resolvió mi problema, estaba usando un proveedor de anuncios de OpenX.

    Sé que no es buena idea establecer un ancho de banner constante, pero siempre y cuando sus banners son 320px funciona bien:

     final float scale = getResources().getDisplayMetrics().density; MoPubView mAdView = new MoPubView(this); mAdView.setAdUnitId(MOPUB_ID); mAdView.loadAd(); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams((int) (320*scale), LayoutParams.WRAP_CONTENT); layoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL); RelativeLayout mRelativeLayout = new RelativeLayout(this); mRelativeLayout.addView(mSurface); mRelativeLayout.addView(mAdView, layoutParams); mRelativeLayout.invalidate(); setContentView(mRelativeLayout); 

    Basta con crear un diseño de contenedor con parámetros "FILL_PARENT" y agregar la vista de su anuncio como:

     MoPubView mAdView = new MoPubView(this); mAdView.setAdUnitId(XXXXXXX); RelativeLayout adContainer = new RelativeLayout(this); addContentView(adContainer, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); LayoutParams adParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, 1); //to align vertically at top adParams.addRule(RelativeLayout.CENTER_IN_PARENT, 1); //to align horizontally at center adContainer.addView(mAdView, adParams); mAdView.loadAd(); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.