0

アプリのボタンの上に Admob 広告 (Admob SDK 6.1.0) が表示されていることに気付いたとき、Jelly Bean との互換性についてアプリをテストしていました。私が使用しているレイアウトは次のとおりです。

        <ImageView android:id="@+id/line"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/spinner"
            android:maxWidth="350sp"
            android:layout_marginTop="5dip"
            android:layout_centerHorizontal="true"
            android:src="@drawable/line"/>
        <View android:id="@+id/ad" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:layout_below="@id/line"
            android:layout_marginTop="5dip"
            android:layout_marginBottom="5dip"/>
        <Button android:id="@+id/generate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/ad"
            android:layout_centerHorizontal="true"
            android:textStyle="bold"
            android:textColor="#000000"
            android:text="@string/generate"/>

広告が読み込まれると、ボタンの上に表示されます。以前のバージョンの Android (ICS 以前) では、広告が読み込まれ、ボタンが押し下げられて広告が表示されました。Jelly Bean でこの機能を復元する方法を知っている人はいますか? ありがとう!

4

1 に答える 1

0

この問題に対する私の解決策は、AdListener インターフェイスを実装して、広告が読み込まれたときにボタンの上余白を手動で設定することです。これにより、ボタンが下に移動し、広告で覆われるのを防ぎます。

@Override
public void onReceiveAd(Ad arg0) {      
    // Move the generate button down by the height of the ad on load
    MarginLayoutParams params = (MarginLayoutParams)generateBtn.getLayoutParams();
    params.topMargin = AdSize.BANNER.getHeightInPixels(this);
    generateBtn.setLayoutParams(params);
}

この問題は Jelly Bean でのみ発生するため、Jelly Bean で実行している場合にのみ AdListener を設定します。

if(Build.VERSION.SDK_INT == Build.VERSION_CODES.JELLY_BEAN)
    ad.setAdListener(this);
于 2012-09-03T20:24:57.130 に答える