android admob在景观上调整大小

Jau*_*ume 7 java eclipse android

我在清单上声明了adMob

<activity 
           android:name="com.google.ads.AdActivity"
          android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
          />
Run Code Online (Sandbox Code Playgroud)

设备旋转时它会正确调整大小,但现在我必须添加android:configChanges="keyboardHidden|orientation"到包含adMob的活动,以防止活动重新加载.我到达了它,但现在adMob在景观时没有缩放.onConfigChanges事件我现在可以强制使用适当的横向尺寸调整adMob的大小.怎么样?谢谢.

@Override
    public void onConfigurationChanged(Configuration newConfig) {
      super.onConfigurationChanged(newConfig);
    }
Run Code Online (Sandbox Code Playgroud)

Jus*_*ith 10

我遇到了同样的问题,但找到了解决办法.

我的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());
}
Run Code Online (Sandbox Code Playgroud)

这适合我,但仍然感觉像一个黑客.