7

次のようなマニフェストでadMobを宣言しました

<activity 
           android:name="com.google.ads.AdActivity"
          android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
          />

デバイスの回転時に適切にサイズ変更されますがandroid:configChanges="keyboardHidden|orientation"、アクティビティのリロードを防ぐために、adMob を含むアクティビティに追加する必要があります。私はそれに到達していますが、現在、adMob は横長のときにスケーリングされません。onConfigChanges イベント adMob を強制的に横向きのサイズに変更できるようになりました。どのように?ありがとうございました。

@Override
    public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
    }
4

3 に答える 3

11

私は同じ問題に直面しましたが、回避策を見つけました。

私の AdView は、相対レイアウト内のページの下部にあります。ロードすると正しいように見えるので、正しいと思いましたLayoutParams。この問題を解決するには、 からすべてを削除しRelativeLayout、新しい AdView を作成して、元のLayoutParams.

何かのようなもの:

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    AdView adView = (AdView)findViewById(R.id.adView);
    View contentFrame = findViewById(R.id.contentFrameLayout);

    RelativeLayout parent = (RelativeLayout) adView.getParent();
    LayoutParams mapFrameParams = contentFrame.getLayoutParams();
    LayoutParams adViewParams = adView.getLayoutParams();

    parent.removeView(adView);
    parent.removeView(contentFrame);

    AdView newAdView = new AdView(this, AdSize.SMART_BANNER, getString(R.string.admob_pubId));

    newAdView.setId(R.id.adView);

    parent.addView(newAdView, adViewParams);
    parent.addView(contentFrame,mapFrameParams);
    newAdView.loadAd(new AdRequest());
}

これは私にとってはうまくいきますが、それでもハックのように感じます。

于 2013-01-03T02:24:46.723 に答える
4

直接返信するには担当者が足りませんが、あなたは正しいジャスティン・スミスです。Eric Leichtenschlagがここで述べているようにhttps://groups.google.com/forum/#!msg/google-admob-ads-sdk/8Ch7VmAm7RE/34Tdw6Zz4jAJSMART_BANNERを使用している場合は、AdViewを再作成する必要があります

私が行ったのは、レイアウトからadViewを削除し、adviewを破棄して再作成し、レイアウトに追加してから、AdRequestを発行することでした。

于 2013-02-04T17:46:15.913 に答える
2

このセットアップを試してください:

<com.google.ads.AdView
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    ads:adSize="SMART_BANNER"
    ads:adUnitId="@string/adkey"
    ads:loadAdOnCreate="false"
    android:focusable="false" />

SMART_BANNER、広告に最適なサイズとタイプを自動的に選択します。

メソッドでは、onConfigurationChangedの新しい広告をリクエストするだけですAdView

を追加する必要がある場合があることに注意してくださいxmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"

于 2012-07-01T11:35:30.910 に答える