Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AdView不再有地心引力了?_Java_Android_Admob - Fatal编程技术网

Java AdView不再有地心引力了?

Java AdView不再有地心引力了?,java,android,admob,Java,Android,Admob,刚刚更新到新的Android SDK版本22.3,支持Android 4.4。之后,我看到AdView不再有setGravity方法 我需要这个,因为我正在制作Unity3D插件,不能使用XML标记 编辑:我正在尝试将AdView与左下角、中下角、左上角等对齐。。。因此,任何其他方法都会有所帮助,因为Android上的Java不是我使用的典型环境。我找到了解决方案。我以前依靠的是重力法。为了得到同样的东西,我这样做: /// Create a AdView AdView myAdView = n

刚刚更新到新的Android SDK版本22.3,支持Android 4.4。之后,我看到AdView不再有
setGravity
方法

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


编辑:我正在尝试将AdView与左下角、中下角、左上角等对齐。。。因此,任何其他方法都会有所帮助,因为Android上的Java不是我使用的典型环境。

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

/// 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));
///创建一个AdView
AdView myAdView=新AdView(我的活动);
myAdView.setAdUnitId();
myAdView.setAdSize(AdSize.SMART_BANNER);
///设置初始帧
FrameLayout.LayoutParams initialFrm=新建FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_内容,
FrameLayout.LayoutParams.WRAP_内容,
重心(水平|重心。顶部);
MY_ACTIVITY.addContentView(myAdView,initialFrm);
/// ....
///现在,每当我想将其放置在底部时,我都会这样做:
myAdView.setLayoutParams(新的FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_内容,
FrameLayout.LayoutParams.WRAP_内容,
重心(水平(重心,底部));
///要将其放回顶部,请执行以下操作:
myAdView.setLayoutParams(新的FrameLayout.LayoutParams(
FrameLayout.LayoutParams.WRAP_内容,
FrameLayout.LayoutParams.WRAP_内容,
重心(水平方向(重心,顶部));

这与ADT和/或Android 4.4无关,而是与最新版本的更新有关。这样,
AdView
就不再扩展
RelativeLayout
(它提供了
setGravity()
方法)。取而代之的是,它直接扩展了
ViewGroup
,这意味着您在这里运气不好,不管您是用代码还是xml做事情。。。也许你可以详细说明一下你想要实现的目标?有些代码的模拟/草图效果可能会有所帮助。@MH。我正在尝试将AdView与BottomLeft、BottomCenter、TopLeft等对齐…如果您试图在版面中定位
AdView
(而不是将内容定位在
AdView
)中,那么您应该在
AdView
的父/版面参数上设置它,不是
AdView
本身。我也有同样的问题,你找到解决方案了吗?基本上,使用FrameLayout,因为你可以为它设置重力标志。Tnx,我稍后会尝试一下。我暂时搬回了旧的AdMob。但计划很快更新。