Java Android-在FrameLayout中将相对位置居中对齐

Java Android-在FrameLayout中将相对位置居中对齐,java,android,Java,Android,adView是AdMob的视图,我将其添加到另一个帧视图中,如下所示: adView = new AdView(this); RelativeLayout relativeLayout = new RelativeLayout(this); mFrameLayout.addView(relativeLayout); RelativeLayout.LayoutParams adViewParams = new RelativeLayout.LayoutParams( AdView.La

adView
是AdMob的视图,我将其添加到另一个帧视图中,如下所示:

adView = new AdView(this);

RelativeLayout relativeLayout = new RelativeLayout(this);
mFrameLayout.addView(relativeLayout);


RelativeLayout.LayoutParams adViewParams = new RelativeLayout.LayoutParams(
   AdView.LayoutParams.WRAP_CONTENT,
   AdView.LayoutParams.WRAP_CONTENT);
   //important I use this to make it appear on the bottom
adViewParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);


relativeLayout.addView(adView, adViewParams);
它出现在框架布局的底部,因此出现在屏幕的底部(框架布局是我的屏幕)。但不是在中间,它是左对齐的。如何在
FrameLayout
中对齐
RelativeLayout

EIDT:这是框架布局,以备您需要:

    // FrameLayout
    ViewGroup.LayoutParams framelayout_params =
        new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                                   ViewGroup.LayoutParams.MATCH_PARENT);
    mFrameLayout = new FrameLayout(this);
    mFrameLayout.setLayoutParams(framelayout_params);

我做过这件事,但它奏效了:

adViewParams.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);

请确认它是否正确。

考虑改用
RelativeLayout.CENTER\u HORIZONTAL
,因为
RelativeLayout.CENTER\u IN\u PARENT
也尝试垂直和水平对齐,与
RelativeLayout.align\u PARENT\u BOTTOM
相矛盾。谢谢,根据您的评论@AndrewT进行更改。你能告诉我第二个参数的意思是
RelativeLayout.TRUE
?在研究了一点之后,我去阅读了
RelativeLayout
的源代码。显然,允许将
addRule()
与“boolean”一起使用是一个技巧。
addRule()
的第二个参数接受
int
,它应该是另一个
视图的ID(使用XML时比较)。当规则与另一个
视图
(与本例类似)不相关时,它使用0(“false”)和-1(
RelativeLayout.TRUE
),因为这两个ID在其他方面都是
视图
的无效ID。非常感谢@AndrewT。