2

刚刚更新到支持 Android 4.4 的新 Android SDK Rev 22.3。之后我看到 AdView 没有setGravity方法了。

我需要这个,因为我正在制作 Unity3D 插件并且不能使用 XML 标记。

编辑:我正在尝试将 AdView 与 BottomLeft、BottomCenter、TopLeft 等对齐...所以任何其他方式都会有所帮助,因为 Android 上的 Java 不是我使用的典型环境。

4

1 回答 1

5

我找到了解决方案。我以前依靠 setGravity 方法。为了得到同样的东西,我这样做:

/// Create a AdView
AdView myAdView = new AdView(MY_ACTIVITY);
myAdView.setAdUnitId(<ADMOB ID>);
myAdView.setAdSize(AdSize.SMART_BANNER);

/// Set the initial frame
FrameLayout.LayoutParams initialFrm = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, 
                                                                   FrameLayout.LayoutParams.WRAP_CONTENT, 
                                                                   Gravity.CENTER_HORIZONTAL | Gravity.TOP); 
MY_ACTIVITY.addContentView(myAdView, initialFrm);

/// ....

/// Now whenever I want to position it on the bottom I do this:
myAdView.setLayoutParams(new FrameLayout.LayoutParams(
                         FrameLayout.LayoutParams.WRAP_CONTENT, 
                         FrameLayout.LayoutParams.WRAP_CONTENT, 
                         Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM));

/// To put it back on the top, do this:
myAdView.setLayoutParams(new FrameLayout.LayoutParams(
                         FrameLayout.LayoutParams.WRAP_CONTENT, 
                         FrameLayout.LayoutParams.WRAP_CONTENT, 
                         Gravity.CENTER_HORIZONTAL | Gravity.TOP));
于 2014-02-19T05:46:57.390 回答