无法以编程方式对齐按钮

时间:2015-01-02 17:09:12

标签: java android

这是我第一次涉足Android世界,而且我无法通过代码对齐按钮。无论我设置哪个Param(BELOW,RIGHT_OF等),它们都会堆叠在一起。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                             android:id="@+id/screen2Layout"
                             android:orientation="vertical"
                             android:layout_width="match_parent"
                             android:layout_height="match_parent">
</RelativeLayout>

SecondScreenActivity.java:

public class SecondScreenActivity extends Activity {
private static final String TAG = "SecondScreenActivity";
private MjpegView mv;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.screen2);

RelativeLayout.LayoutParams relativeLayoutParams =
            new RelativeLayout.LayoutParams(
                    RelativeLayout.LayoutParams.WRAP_CONTENT,
                    RelativeLayout.LayoutParams.WRAP_CONTENT);

    mv = new MjpegView(this);
    addContentView(mv, relativeLayoutParams);

    Button zoomIn = new Button(this);
    zoomIn.setText("Zoom In");
    zoomIn.setTextColor(Color.BLUE);
    zoomIn.setBackgroundColor(Color.LTGRAY);
    int zoomInID = View.generateViewId();
    zoomIn.setId(zoomInID);
    this.addContentView(zoomIn, relativeLayoutParams);

    Button zoomOut = new Button(this);
    zoomOut.setText("Zoom Out");
    zoomOut.setTextColor(Color.BLUE);
    zoomOut.setBackgroundColor(Color.TRANSPARENT);
    int zoomOutID = View.generateViewId();
    zoomIn.setId(zoomOutID);

    RelativeLayout.LayoutParams zoomOutParam = relativeLayoutParams;
    zoomOutParam.addRule(RelativeLayout.RIGHT_OF, zoomInID);
    this.addContentView(zoomOut, zoomOutParam);

那么,我在这里做错了什么?感谢。

2 个答案:

答案 0 :(得分:0)

我不知道this.addContentView正在做什么,但似乎您对不同的视图使用相同的RelativeLayout.LayoutParams实例。每个视图都必须有自己的实例。

答案 1 :(得分:0)

对于这样一个简单的布局,为什么不使用方向设置为的LinearLayout? 水平。

此外,您可以将它们放在相对布局xml中,然后访问它们以进行任何操作 你想要的改变。 findViewById()。这是更传统的方式,使它更容易 做化妆品布局的改变。

我在这里看不到任何需要你以编程方式执行此操作的内容。