我有一个Open GL ES 2.0应用程序,并在我的GLSurfaceView顶部显示一个Android TextView。
我的实际文本视图显示正常,但现在我需要尝试将它们居中。
这是我到目前为止所做的:
text1 = new TextView(this);
text1.setText("This is some sample text");
text1.setTextColor(Color.WHITE);
text1.setTextSize(textSize);
text2= new TextView(this);
text2.setText("And this is some more sample text");
text2.setTextColor(Color.WHITE);
text2.setTextSize(textSize);
RelativeLayout.LayoutParams textParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.MATCH_PARENT);
lp.addRule(RelativeLayout.CENTER_HORIZONTAL);
textLayout = new RelativeLayout(this);
textLayout.setLayoutParams(textParams);
textLayout.addView(text1);
textLayout.addView(text2);
mainLayout.addView(textLayout);
然而,当我运行它时,只有text1居中。文本2不是,并从第一个(正确居中)textView的左侧开始。尽我所能,我似乎无法让他们两个居中。下图描述了我的意思:
(请注意重新垂直放置 - 在我的实际结果中,两个TextView都处于相同的垂直/'y'位置,因此重叠 - 显然这是预期的我没有改变第二个TextView的垂直位置,但为了让事情更清楚,我已经手动移动了第二个.......)
我想要的想法是创建一个'textLayout',我可以添加所有textViews,然后将textLayout添加到我的主布局中。因此,只需一行代码就可以方便地添加和删除所有textView。
请注意,我没有使用XML,也不希望使用XML - 我想知道如何以编程方式执行此操作。
我错过了什么?
编辑以下是我如何创建我要添加textView的主布局......
layout = new RelativeLayout(this);
layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
答案 0 :(得分:1)
当您将“RelativeLayout.CENTER_HORIZONTAL”作为规则添加到布局参数时,您实际在做的是告诉textLayout它应该在mainLayout中水平居中(请参阅http://developer.android.com/reference/android/widget/RelativeLayout.LayoutParams.html#attr_android:layout_centerHorizontal)。在代码中,你应该实际上做text1.setGravity(Gravity.CENTER)和text2.setGravity(Gravity.CENTER)。