Показ рекламы в AndEngine - PullRequest
7 голосов
/ 20 января 2012

Я пытаюсь отобразить рекламу с помощью Greystrip в AndEngine.

Я не могу понять, как это сделать, потому что он не использует Layout для раздувания представлений, но все же спрайты.

Я использую BaseGameActivity для создания своего приложения для каждой сцены, которую я хотел бы отобразить, добавляет.

В GreyStrip они говорят, что вам нужно интегрировать рекламу в ваше приложение.

Перед добавлением вызовов в приложении в GSSDK необходимо включить SDK в ваш AndroidManifest.xml. Добавьте следующее в разделе, заменяя с идентификатором пакета, который является уникальным для вашего приложения. это Контент-провайдер управляет локальным хранением рекламного контента, а Активность управляет показом рекламы.

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

Чтобы инициализировать Greystripe SDK, вызовите метод initialize по адресу запускать. Это должно быть сделано в onCreate () вашего приложения метод. Этот вызов создаст фоновый поток для инициализации нашего активности, а затем верните управление в свое приложение. На этом фоне Активность Greystripe будет загружать рекламу, а также любые обновления SDK. Параметры: ctx: ваш экземпляр контекста приложения appId: используйте appId предоставляется при регистрации приложения. Предоставление неверного appId приведет к тому, что в 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:

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

К запросу добавляется звонок

myBanner.refresh();

Теперь проблема в том, что у меня нет макета xml, я не могу понять, как я надуваю макет для просмотра рекламы?

У кого-нибудь есть идеи?

EDIT:

Я видел, как кто-то делал это в онлайн-уроке, но как я могу надуть это в андегине?

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

1 Ответ

6 голосов
/ 20 января 2012

Я использую AdMob, но он должен быть похожим.

Как и @Sergey Benner, на который вы ссылаетесь, вы должны переопределить onSetContentView в своей активности, а затем вручную создать RenderSurfaceView и просмотр рекламы.

Прежде всего, создайте FrameLayout, который будет содержать представление AndEngine и представление рекламы. Добавьте вид 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 класс.

...