2012-01-20 19 views
7

Sto tentando di visualizzare un annuncio utilizzando Greystrip in AndEngine.Visualizzazione annuncio in AndEngine

Non riesco a capire come questo è fatto perché non usa un Layout per gonfiare le viste, ma ancora sprite.

Uso BaseGameActivity per creare la mia applicazione per ogni scena su cui vorrei visualizzare gli add.

In GreyStrip questo è il modo in cui ti dicono di integrare gli annunci nella propria applicazione ..

Prima di aggiungere le chiamate nell'applicazione per GSSDK, è necessario incorporare il SDK nella tua AndroidManifest.xml. Aggiungi il seguente nella sezione, sostituendo con un identificatore di pacchetto che è univoco per la tua applicazione. Questo fornitore di contenuti gestisce l'archiviazione locale del contenuto dell'annuncio, mentre l'attività gestisce la visualizzazione degli annunci.

<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> 

Per inizializzare il Greystripe SDK, chiamare il metodo di inizializzazione in all'avvio. Questo dovrebbe essere fatto all'interno del metodo onCreate() dell'applicazione. Questa chiamata genererà una discussione in background per inizializzare la nostra attività e quindi restituire il controllo alla tua app. In questo contesto, l'attività Greystripe scarica gli annunci così come gli eventuali aggiornamenti SDK. Parametri: ctx: l'appIdI di istanza del contesto dell'applicazione: utilizzare l'appId fornita durante la registrazione dell'app. Se viene fornita una app non valida , l'SDK visualizzerà gli annunci di notifica degli errori.

public static GSSDK initialize(Context ctx, String appId) 

Per utilizzare un banner, inserire il seguente nel file main.xml:

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

per fare riferimento alla visualizzazione del banner nel codice, utilizzare findViewById, come con qualsiasi elemento main.xml:

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

Per richiedere aggiunge chiamano

myBanner.refresh(); 

Ora il problema è dato non devo un layout xml Non riesco a capire come ho gonfiare il layout per la visualizzazione degli annunci?

Qualcuno ha qualche idea?

EDIT:

Ive visto qualcuno farlo come questo in un tutorial on-line, ma come posso gonfiare questo 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

Che tipo di layout hai? Almeno devi avere una sorta di layout lineare/relativo per disporre i tuoi componenti sullo schermo. Se è così basta creare LayoutParams lp ... e poi mymainview.addView (myBanner, lp); e andare d'accordo. –

+0

Con GreyStripe usi BannerView. Come ho nella mia domanda. Controlla il mio aggiornamento ... Il problema è che non riesco a capire come integrare questo con AndEngine –

+0

che cosa sei onCreate() in AdView e come imposti setContentView()? –

risposta

6

Sto utilizzando AdMob ma dovrebbe essere simile.

Come @Sergey Benner di riferimento, è necessario eseguire l'override di onSetContentView nella propria attività, quindi creare manualmente lo RenderSurfaceView e la visualizzazione dell'annuncio.

Prima di tutto, creare un FrameLayout per contenere la vista di AndEngine e la visualizzazione dell'annuncio. Aggiungi la vista di AndEngine e crea la visualizzazione dell'annuncio, quindi imposta il layout della cornice come visualizzazione del contenuto.

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

Inserire questo metodo nella classe BaseGameActivity.

+1

Jong salva il giorno ... ANCORA! (= Amico tuo fantastico, mi aiuti davvero molto, non posso ringraziarti abbastanza anche in frameLayout.addView (this.mAdView, bannerViewLayoutParams); dovrebbe essere frameLayout.addView (this.bannerView, bannerViewLayoutParams); corretto? –

+1

Sì, Ho appena dimenticato di cambiarlo (è da un metodo nel mio gioco, ma ho usato AdMob 'AdView'. Lo aggiusterò ora :)) – Jong

+0

È il tuo gioco sul mercato? Voglio provarlo. –

Problemi correlati