在背景下的Admob

时间:2012-02-28 05:37:33

标签: android android-layout admob

http://i.stack.imgur.com/lbs7l.png

我正在尝试在背景下设置admob,但我一直在这样的背景上获得admob。 http://i.stack.imgur.com/YJXU2.png

所以发生的事情是我有一个按钮alignedParentBottom =“true” 但广告一直在覆盖按钮。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<Button
    android:id="@+id/backButton"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/back"
    android:textSize="40sp"
     android:layout_alignParentBottom="true"
    ></Button>

<ScrollView
    android:id="@+id/ScrollView1"

    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_alignParentTop="true"
    android:layout_above="@id/backButton"        
     >

 <TextView
     android:id="@+id/TextView1"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:textSize="20sp"

    android:text="@string/helphelp"></TextView>
</ScrollView>


<com.google.ads.AdView android:id="@+id/adView2"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     ads:adUnitId="MY_UNIT_ID"
                     ads:adSize="BANNER"
                     ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
                     ads:loadAdOnCreate="true"
                     android:layout_below="@id/backButton"></com.google.ads.AdView>

2 个答案:

答案 0 :(得分:1)

您可以创建第二个RelativeLayout - 内部将包含所有主要布局内容,外部将包含您的布局内容和AdView。只需将AdView设置为底部,并将RelativeLayout内容设置在AdView上方,并在广告恢复时强制退回按钮。

为方便起见,我在这里提供了代码。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:layout_above="@+id/adView2">
        <Button
            android:id="@+id/backButton"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/back"
            android:textSize="40sp"
            android:layout_alignParentBottom="true">
        </Button>
        <ScrollView
            android:id="@+id/ScrollView1"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:layout_alignParentTop="true"
            android:layout_above="@id/backButton">
            <TextView
                android:id="@+id/TextView1"
                android:layout_height="wrap_content"
                android:layout_width="fill_parent"
                android:textSize="20sp"
                android:text="@string/helphelp">
            </TextView>
        </ScrollView>
    </RelativeLayout>
    <com.google.ads.AdView android:id="@id/adView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        ads:adUnitId="MY_UNIT_ID"
        ads:adSize="BANNER"
        ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
        ads:loadAdOnCreate="true">
    </com.google.ads.AdView>
</RelativeLayout>

附注:确保您的UI元素与广告不太接近;这可能会鼓励意外点击,并且违反了AdMob的ToS。

答案 1 :(得分:0)

使用FrameLayout

  

子视图以堆栈形式绘制,最近添加的子项位于顶部。

没什么可说的。如果您想确保在AdView上绘制Button,请将AdView更早地放在常见的FrameLayout父级中。如,

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
    <com.google.ads.AdView android:id="@+id/adView2" ... />
    <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
        ... Buttons, etc. ...
    </RelativeLayout>
</FrameLayout>

虽然您可能只想在RelativeLayout的FrameLayout子项中使用Button和AdView。或者,您可能需要上述示例中AdView的RelativeLayout父级来定位广告。