java - android admob 在横向上调整大小

标签 java android eclipse

我已经在 list 上声明了 adMob,例如

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

当设备旋转时它会正确调整大小,但现在我必须将 android:configChanges="keyboardHidden|orientation" 添加到包含 adMob 的 Activity 以防止 Activity 重新加载。我正在达到它,但现在 adMob 在横向时没有缩放。 onConfigChanges 事件我现在可以强制调整 adMob 的大小,使其具有适当的横向尺寸。如何?谢谢。

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

最佳答案

我遇到了同样的问题,但找到了解决方法。

我的 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());
}

这对我有用,但仍然感觉像是 hack。

关于java - android admob 在横向上调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11281562/

相关文章:

Java泛型 <?扩展 A> vs <A> vs <?超A>

java - 在 OpenSSL 中完成的 AES 加密成功解密,但在 Java 中加密时失败

eclipse - 在 Eclipse 中突出显示带有关键字的行

java - 应用程序 : webview : selenium : How to automate touchend event on a div?

c++ - Eclipse 4.4 Luna Windows 7 'Program "gcc“在路径中找不到”

java - 我怎样才能使选择升序和降序问题防错?

java - 当所有消息都被过滤后停止路由

android - 获取以原点为中心的触摸手势归一化坐标

android - 将标题设置为操作栏时出现空指针异常

安卓工作室 : Creating landscape layouts