2012-03-26 4 views
0

Я рассматривал подобные вопросы, но они больше о том, как заставить рекламу показывать эту новую версию Admob, я получаю объявления, чтобы показать, что это не моя проблема. Моя проблема заключается в том, что объявления показываются в в нижней части экрана, поэтому, когда приложение расширяет содержимое на экране, рекламное окно исчезает, так как оно находится под всем содержимым. мое решение состоит в том, чтобы разместить рекламу сверху экрана и таким образом, независимо от того, сколько контента на экране будет видно в виде рекламы! Я смог выполнить это раньше, когда объявление было встроено в мой xml, но после учебного курса admob вы больше не помещаете его в xml. Итак, как я могу разместить объявление поверх mainLayout? вот код, который я пытался.Android Admob 4.3.1 Как мне сделать показ adView поверх экрана?

LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout); 
    adView = new AdView(this, AdSize.BANNER, "my code"); 
    layout.addView(adView); 
    AdRequest r = new AdRequest(); 
    adView.loadAd(r); 
    // this is what I try to get it on top of the screen, but is not working 
    adView.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL); 
    adView.bringToFront(); 

это все, так как я не сделал ничего в XML, все еще показывает AdView в нижней части, так как я могу получить его в верхней части экрана? Спасибо

ответ

3

Ваш код задает гравитацию AdView, но AdView находится в LinearLayout. Поместите LinearLayout, где вы хотите, чтобы он появился.

+0

Это сработало, я добавил новый пустой LinearLayout поверх всего моего содержимого xml и направил свой код на этот LinearLayout! спасибо – zvzej

1

Здесь documentation о том, как добавить свой баннер в XML в 4.3.1.

Если вы все еще хотите сделать это в коде, попробуйте сделать свой верхний раскладку уровня RelativeLayout, и использовать этот код:

adView = new AdView(this, AdSize.BANNER, "my code"); 
AdRequest r = new AdRequest(); 
adView.loadAd(r); 
RelativeLayout layout = (LinearLayout)findViewById(R.id.mainLayout); 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT, 
    RelativeLayout.LayoutParams.FILL_PARENT); 
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
layout.addView(adView, params); 
+0

Я не проверял этот подход, так как верх работал, но звучал так же! спасибо – zvzej

+0

Нет проблем. Я понял, что этот бит кода фактически выровнял бы объявление в нижней части экрана, а не сверху. LinearLayout отлично подходит, если вы хотите, чтобы объявление было сверху, потому что вы можете просто поместить объявление первым, но нет хорошего способа выровнять элемент в нижней части экрана с помощью LinearLayouts. Именно здесь вступает в действие RelativeLayout (и этот бит кода). –

+0

Полезно знать спасибо за подсказку! – zvzej

0

При добавлении мнения, добавьте его с индексом. Это работает для меня:

layout.addView(adView, 0);