Если вам интересно, как разместить работающую рекламу AdMob в SurfaceView и вы устали искать решение в Интернете, то вот оно.
Однако сначала следует отметить несколько моментов:
- Запрос рекламы идёт при создании.
- AdView помещается в нижнюю часть экрана.
- Чтобы протестировать работу кода, нужно добавить testDevices в adRequest.
- В активности, которая инициализирует SurfaceView, добавьте поле, объявляющее ваше AdView, например:
private AdView adView;
- В методе onCreate() этой же активности добавьте следующий код:
// подготовка WindowManager WindowManager.LayoutParams windowParams = new WindowManager.LayoutParams(); windowParams.gravity = Gravity.BOTTOM; windowParams.x = 0; windowParams.y = 0; windowParams.height = WindowManager.LayoutParams.WRAP_CONTENT; windowParams.width = WindowManager.LayoutParams.WRAP_CONTENT; windowParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; windowParams.format = PixelFormat.TRANSLUCENT; windowParams.windowAnimations = 0; WindowManager wm = getWindowManager(); // создание AdView adView = new AdView(this, AdSize.BANNER, YOU_ADMOB_SITE_ID); // инициализация запроса для загрузки рекламы adView.loadAd(new AdRequest()); // добавление AdView в WindowManager wm.addView(adView, windowParams);
- Переопределите метод onDestroy(), чтобы выполнить очистку (или, если onDestroy() уже есть, добавьте в него код очистки):
@Override public void onDestroy() { if (adView != null) { adView.destroy(); } super.onDestroy(); }