我需要用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);
感谢
答案 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;
。它应该工作。