2012-01-20 14 views
7

Estoy tratando de mostrar un anuncio usando Greystrip en AndEngine.Mostrando anuncio en AndEngine

No puedo entender cómo se hace esto porque no usa un diseño para inflar las vistas, pero sí los sprites.

uso BaseGameActivity para crear mi aplicación para cada escena que me gustaría mostrar agrega.

En GreyStrip esta es la forma en que le dicen a integrar anuncios en su aplicación ..

Antes de añadir las llamadas en su aplicación a GSSDK, es necesario incorporar el SDK en su AndroidManifest.xml. Agregue el siguiente en la sección, reemplazando con un identificador de paquete que sea exclusivo para su aplicación. Este proveedor de contenido administra el almacenamiento local de contenido de anuncios, mientras que la actividad administra la visualización de anuncios.

<provider android:name="com.greystripe.android.sdk.AdContentProvider" 
    android:authorities="<YOUR_APPLICATION_PACKAGE>.AdContentProvider" 
android:multiprocess="true" 
android:exported="false" /> 
<activity android:name="com.greystripe.android.sdk.AdView" 
android:configChanges="keyboard|keyboardHidden|orientation" > 
<intent-filter> 
<category android:name="android.intent.category.LAUNCHER" /> 
</intent-filter> 
</activity> 

para inicializar el SDK Greystripe, llame al método initialize en inicio. Esto debe hacerse dentro del método onCreate() de su aplicación. Esta llamada generará un hilo de fondo para inicializar nuestra actividad y luego devolverá el control a su aplicación. En este contexto, la actividad de Greystripe descargará anuncios, así como cualquier actualización de SDK. Parámetros: ctx: su aplicación Aplicación de instancia de contexto: Use la Id. De aplicación proporcionada durante el registro de la aplicación. Proporcionar una aplicación no válida hará que el SDK muestre avisos de notificación de error.

public static GSSDK initialize(Context ctx, String appId) 

Para usar una bandera, coloque el siguiente en el archivo main.xml:

<view class="com.greystripe.android.sdk.BannerView" 
android:id="@+id/gsBanner" 
android:layout_width="320dp" 
android:layout_height="48dp"/> 

hacer referencia a la vista del banner en el código, utilice findViewById, al igual que con cualquier elemento main.xml:

BannerView myBanner = (BannerView) findViewById(R.id.gsBanner); 

Solicitar añade llaman

myBanner.refresh(); 

Ahora el problema es que no tengo ya un diseño xml no puedo averiguar cómo inflar el diseño para la reproducción del anuncio?

¿Alguien tiene alguna idea?

EDIT:

he visto a alguien hacerlo de esta manera en un tutorial en línea, pero ¿cómo puedo inflar esto en andengine?

try { 
    String applicationId = Utils.scrapeIgnoreCase(externalParams, "<param name=\"id\">", "</param>");   
    GSSDK.initialize(context, applicationId); 

    BannerView myBanner = new BannerView(context);   
    myBanner.setLayoutParams(view.getLayoutParams()); 
    myBanner.addListener(new GreyStripeBannerListener());   
    view.addView(myBanner); 
    myBanner.refresh(); 
    myBanner.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Click(); 
     } 
    }); 
+0

¿Qué tipo de diseño tiene? Al menos debe tener algún tipo de diseños lineales/relativos para organizar sus componentes en la pantalla. Si es así solo crea LayoutParams lp ... y luego mymainview.addView (myBanner, lp); y seguir con eso. –

+0

Con GreyStripe usted usa BannerView. Como tengo en mi pregunta. Comprueba mi actualización ... El problema es que no puedo entender cómo integrar esto con AndEngine –

+0

¿qué estás onCreate() en AdView y cómo configuras tu setContentView() allí? –

Respuesta

6

Estoy usando AdMob pero debería ser similar.

Al igual que @Sergey Benner a la que se hace referencia, debe anular onSetContentView en su actividad, luego crear el RenderSurfaceView y su vista de anuncio manualmente.

En primer lugar, cree un FrameLayout para contener la vista de AndEngine y la vista del anuncio. Agregue la vista de AndEngine y cree su vista de anuncio, luego configure el diseño de marco como la vista de contenido.

@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); 
} 

Coloque este método en su clase BaseGameActivity.

+1

Jong salva el día ... ¡AGRADABLE! (= Tío, eres increíble. Realmente me ayudas mucho. No puedo agradecerte lo suficiente. También en frameLayout.addView (this.mAdView, bannerViewLayoutParams); debe ser frameLayout.addView (this.bannerView, bannerViewLayoutParams); ¿correcto? –

+1

Sí, Me olvidé de cambiarlo (es de un método en mi juego, pero utilicé AdMob 'AdView'. Lo arreglaré ahora :)) – Jong

+0

¿Está su juego en el mercado? Quiero intentarlo. –