2012-01-20 26 views
7

AndEngineのGreystripを使用して広告を表示しようとしています。AndEngineで広告を表示する

レイアウトを使用してビューを拡張するのにスプライトを使用しないため、これがどのように行われるのかわかりません。

私はBaseGameActivityを使用して、表示したいシーンごとにアプリケーションを作成します。 GSSDKに、アプリケーションの呼び出しを追加する前に、これは彼らがあなたのアプリケーションに広告を統合するためにあなたを伝える方法ですGreyStripで

..

、あなたはあなたのAndroidManifest.xmlにSDKを組み込む する必要があります。セクションに次の を追加し、 を、アプリケーション固有のパッケージ識別子に置き換えます。この コンテンツプロバイダは広告コンテンツのローカルストレージを管理し、 アクティビティは広告表示を管理します。

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

起動時にinitializeメソッドを呼び出して、GreystripeのSDKを初期化します。これはアプリケーションのonCreate() メソッド内で行う必要があります。この呼び出しによって、背景のスレッドが生成され、 アクティビティが初期化され、コントロールがアプリケーションに返されます。このような背景で、Greystripeアクティビティでは、SDKのアップデートと同様に広告がダウンロードされます。 パラメータ:ctx:あなたのアプリケーションコンテキストインスタンスappId:アプリケーション登録中に appIdを使用します。無効なアプリID を指定すると、SDKにエラー通知広告が表示されます。

public static GSSDK initialize(Context ctx, String appId) 

、バナーを使用して、あなたのmain.xmlファイルに次のように配置するには:

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

と同様に、コード内のバナービューを参照findViewByIdを使用するには任意 main.xml要素:

要求への3210
BannerView myBanner = (BannerView) findViewById(R.id.gsBanner); 

は、今の問題は、私は、XMLのレイアウトを持っていけないので、私は広告表示のためのレイアウトを膨らませる方法を見つけ出すカントである

myBanner.refresh(); 

を呼び出す追加しますか?

誰もが考えている?

EDIT:

アイブ氏は、誰かがオンラインチュートリアルでは、このようにそれを行う見て、どのように私は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

あなたはどのようなレイアウトですか?少なくとも、コンポーネントを画面上に配置するには、ある種の線形/相対レイアウトが必要です。もしそうなら、単にLayoutParams lpを作成し、次にmymainview.addView(myBanner、lp);それと一緒に取得します。 –

+0

GreyStripeでは、BannerViewを使用します。私の質問にあるように。私の更新をチェックしてください。問題は、これをAndEngineとどのように統合するかわかりません。 –

+0

AdViewでonCreate()とsetContentView()を設定する方法は何ですか? –

答えて

6

私はAdMobを使用していますが、類似している必要があります。

@Sergey Bennerと同様に、アクティビティ内でonSetContentViewを無効にしてから、RenderSurfaceViewと広告ビューを手動で作成する必要があります。

まず、AndEngineのビューと広告ビューを含むFrameLayoutを作成します。 AndEngineのビューを追加して広告ビューを作成し、フレームレイアウトをコンテンツビューとして設定します。

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

置き、あなたのBaseGameActivityクラスでこのメソッド。

+1

ジョンは日を節約する!あなたが本当に助けてくれてありがとうございます。frameLayout.addView(this.mAdView、bannerViewLayoutParams); はframeLayout.addView(this.bannerView、bannerViewLayoutParams)でなければなりません;正しい? –

+1

はい、私はそれを変更することを忘れました(これはゲームの方法ですが、私はAdMobのAdViewを使用しました)。 – Jong

+0

あなたのゲームは市場に出ていますか?私はそれを試してみたい。 –

関連する問題