Android: как отображать рекламные объявления на GLSurfaceView

В настоящее время я могу получить рекламу AdMob на ui view (в отдельном тестовом проекте), но я хочу показать это объявление в GLSurfaceView, Я пытался загрузить объявление в onCreate( ) метод деятельности и в настоящем методе моего экрана (где все рендеринг делается) я вызвал

MyGameActivity.mAdView.bringToFront(); // думал, что это принесет рекламу перед всеми игровыми объектами.

теперь при запуске проекта я вижу сообщение в окне logcat Recieved ad url "big url"но я не вижу рекламу на экране. В моей игре есть только одно занятие и множество игровых экранов. Пожалуйста, помогите мне понять, как показывать рекламу на моем игровом экране.

1 ответ

Решение

Вы должны изменить свой макет, чтобы он был примерно таким:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/layoutMain"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >       
    <RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/layout1"
        android:tag="trueLayout"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        >       
    </RelativeLayout>
</LinearLayout>

Это мой код, который говорит сам за себя.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);        

    setContentView(R.layout.main);

    LinearLayout layoutMain = (LinearLayout) findViewById(R.id.layoutMain);

    // Create the adView
    // Please replace MY_BANNER_UNIT_ID with your AdMob Publisher ID
    adView = new AdView(this, AdSize.BANNER, "YourPersonalID#"); 

    layoutMain.addView(adView);

    // Initiate a generic request to load it with an ad
    AdRequest request = new AdRequest();
    request.setTesting(true);

    adView.loadAd(request);     

    RelativeLayout layout1 = (RelativeLayout) findViewById(R.id.layout1);
    layout1.setOnTouchListener(this);

    mTestHarness = new GLSurfaceView(this);
    mTestHarness.setEGLConfigChooser(false);
    mTestHarness.setRenderer(this);
        mTestHarness.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);    

    layout1.addView(mTestHarness);
}

После того, как вы получите это право, вы получите эквивалент учебного приложения BannerEssentials из учебников Google Play, но с использованием GLSurfaceView.

Другие вопросы по тегам