Android - Admob SurfaceView

1

Я новичок в разработке Android, но я пытаюсь добавить admob в мое приложение, которое использует viewview (panelView - GameView).

Я пробовал следовать http://rx-games.com/admob-adverts-on-surfaceview-no-xml-tutorial/, но я должен делать что-то не так, как rl.addView(panelView); добавляет исключение nullPointerException. Любая помощь приветствуется.

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    //setContentView(R.layout.main);
    AdView adView = new AdView(this, AdSize.BANNER, "a14ded47ad3779e");
    panelView = (GameView) findViewById(R.id.gameScreen);

    RelativeLayout rl = new RelativeLayout(this);
    rl.addView(panelView);
    rl.addView(adView);

    setContentView(rl);

    threadView = panelView.getThread();
}
Теги:
admob

1 ответ

0
Лучший ответ

Вы раздуваете класс GameView из макета xml и добавляете его в корневой вид, который не является тем, который определен в этом же xml. У вас есть два варианта:

  • Вы полностью создаете SurfaceView на Java (как в примере, который вы опубликовали)

  • Вы включаете AdView в макет xml (я бы предпочел этот вариант над другим)

Если вы назовете xml файл game_layout.xml, вы используете его как:

setContentView(R.layout.game_layout.xml);

game_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
  <com.google.ads.AdView 
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    ads:adUnitId="@string/admob_id"
    ads:adSize="BANNER"
    ads:loadAdOnCreate="true"
    android:layout_alignParentBotom="true"
    />
  <your.package.GameView 
    android:id="@+id/gameScreen"
    android:layout_alignParentTop="true"
    android:layout_above="@id/adView"
  />
</RelativeLayout>
  • 0
    Как я уже сказал, я очень новичок ... Я уже создал класс игры с 4000+ строками кода. Как бы я вызвал это и adView в XML? Если вы знаете учебник для этого, это работает. Я не думаю, что понимаю, как работают взгляды ...
  • 0
    @ См. Пример в обновленном ответе. Что касается учебников, я бы предложил начать с чтения руководства разработчика : developer.android.com/guide/topics/ui/index.html
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню