Как создать горизонтальную белую разделительную линию, чтобы добавить ее в мой макет с помощью Java? - PullRequest
1 голос
/ 07 марта 2012

Мне нужно создать белую разделительную линию с 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.

Как я могу это сделать?

Я пытался с этим кодом, но он не работает ... он рисует ВЕРТИКАЛЬНУЮ ЛИНИЮ, и я хочу ГОРИЗОНТАЛЬНО:

    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 Ответ

4 голосов
/ 07 марта 2012
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;. Это должно работать.

...