如何使用java创建一个HORIZONTAL白色分隔线以添加到我的布局?

时间:2012-03-07 13:26:03

标签: java android relativelayout

我需要用java创建一个白色的分隔符。我需要将它添加到我的relativelayout中,但总是使用java,因为我正在学习将relativelayout与java一起使用。

我知道如何使用 xml 创建行:

<View
    android:layout_gravity="center_horizontal"
    android:layout_width="fill_parent"
    android:layout_height="1dip"
    android:background="#808080"
    android:layout_marginTop="5px"/>

但现在我需要用java代码将它添加到我的相对布局中:

        RelativeLayout rl= new RelativeLayout(this); //Contiene el menu superior con sus botones.

        home= new ImageView(this);
        home.setImageResource(R.drawable.but_home_up);
        rl.addView(home);
        homeParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
        homeParams.setMargins(10, 0, 0, 0);
        home.setId(5);
        home.setLayoutParams(homeParams);

我想将分隔线放在 Home imageView下面。

我该怎么做?

我尝试使用此代码,但它不起作用......它正在绘制一条垂直线,我想要HORIZONTAL:

    View line = new View(this);
    RelativeLayout.LayoutParams lineParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
    lineParams.setMargins(0,0,10,0);
    lineParams.addRule(RelativeLayout.BELOW,5);
    lineParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
    lineParams.width=1;
    line.setId(6);
    line.setBackgroundColor(0xFF808080);
    line.setLayoutParams(lineParams);
    rl.addView(line);

感谢

1 个答案:

答案 0 :(得分:4)

View v = new View(this);
RelativeLayout.LayoutParams viewLp = new LayoutParams(LayoutParams.FILL_PARENT, 1);
viewLp.addRule(RelativeLayout.BELOW, imageViewID);
viewLp.addRule(RelativeLayout.CENTER_HORIZONTAL);
viewLp.setMargins(0, 5, 0, 0);

v.setLayoutParams(viewLp);
v.setBackgroundColor(0x808080);

rl.addView(v);

将上一个代码示例lineParams.width = 1;替换为lineParams.height = 1;。它应该工作。