Начало игр для Android и AdMob - PullRequest
       5

Начало игр для Android и AdMob

2 голосов
/ 12 августа 2011

Я только начал с книги: Начало игр для Android, и у меня уже есть проблема.В примере игры мы не используем main.xml, но без этого я не смогу реализовать AdMob.

Кто-нибудь читал эту книгу и успешно реализовал AdMob в своей игре?

Вот мойкод:

public abstract class AndroidGame extends Activity implements Game {
    private AdView adView;
    AndroidFastRenderView renderView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        renderView = new AndroidFastRenderView(this, frameBuffer);
        setContentView(renderView);


        adView = new AdView(this, AdSize.BANNER, "a14e3af977eb71a");

        LinearLayout layout = (LinearLayout)findViewById(R.id.admob_test);

        layout.addView(adView);

        adView.loadAd(new AdRequest());

    }

Я надеюсь, что кто-то может мне помочь.

Ответы [ 3 ]

3 голосов
/ 24 июля 2012

Если вы посмотрите на строку

setContentView(renderView);    

Вы устанавливаете вид содержимого на любой вид отображения. Этот класс расширяет SurfaceView. Это означает, что вы устанавливаете SurfaceView в качестве представления содержимого, а не LinearView или RelativeView.

Если вы сделаете быстрый гугл по запросу "admob and surfaceview", вы можете наткнуться на эту ссылку:

Admob на поверхности

Я заработал это на моем приложении, выполнив следующее:

    adView = new AdView(this, AdSize.BANNER, "<enter your admob ID here>");
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    adView.setLayoutParams(lp);

    RelativeLayout layout = new RelativeLayout(this);
    layout.addView(renderView);
    layout.addView(adView);
    adView.loadAd(new AdRequest());

    setContentView(layout);
    //setContentView(renderView);

Мне не нужно было менять макет в XML-файле.

Я провел хороший день, пытаясь понять это. Это сложный вопрос, но я надеюсь, что это поможет.

2 голосов
/ 12 августа 2011

вам не нужно использовать main.xml для реализации adMob, вы также можете программно создать adView в Java

edit: снова проверить ссылку , все есть:

Пять строк кода, необходимых для добавления баннера:

  1. Импорт com.google.ads. *
  2. Объявление экземпляра AdView
  3. Создайте его, указав идентификатор устройства - ваш идентификатор издателя AdMob
  4. Добавьте представление в пользовательский интерфейс
  5. Загрузите его с объявлением
0 голосов
/ 13 августа 2011

Полагаю, вы определили макет в XML, в котором у вас есть LinearLayout с идентификатором admob_test, вы добавляете adView в этот макет, хорошо.

Но перед этим вы настроили свою деятельность на использование AndroidFastRenderViewкак ContentView, так что LinearLayout не отображается.

Попробуйте добавить AdView непосредственно в основное представление или настройте свою деятельность на использование LinearLayout в качестве представления содержимого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...