как нарисовать adView на холсте SurfaceView

Я хочу добавить рекламу admob в свое игровое приложение. однако рисунок игры полностью включен в код без макетов, только Surfaceview, на котором игра рисует.

Я не могу использовать layout.addView(adView); документы приведены в качестве примера, поскольку в моей игре не используется макет, фактически папка макета удалена.

в основном действии я определяю игровую панель:

gamepanel=новая основная игровая панель(это);

создается экземпляр игровой панели:

класс MainGamePanel расширяет SurfaceView, реализует SurfaceHolder.Callback

а затем я просто рисую прямо на поверхности, используя методы рисования Canvas.

Итак, как мне добавить объект adView, который я создал в действии, в представление поверхности:

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

gamepanel.addView(adView) не работает. может быть, я буду вынужден использовать макет с самого начала только для этого, но это все усложнит.


person Androidcoder    schedule 24.08.2013    source источник


Ответы (1)


Лучший обходной путь, который я нашел для добавления рекламы admob в приложение SurfaceView, — это создать макет программно и нарисовать к нему оба представления следующим образом:

LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);

ll.addView(adView); // The ad banner
ll.addView(gamepanel); // The SurfaceView object

На самом деле это не рисование adView в SurfaceView, но это лучший способ, который я нашел для его включения.

Обратите внимание, что баннерная реклама замедляет частоту кадров, поэтому будьте благоразумны. К сожалению, в настоящее время трудно заставить игроков Android выложить даже 0,99 аванса за игру, если название вашей компании не Square Enix, поэтому реклама может быть неизбежным злом.

person Androidcoder    schedule 27.08.2013