<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="6"
android:gravity="center"
android:paddingLeft="5dp">
<RelativeLayout
android:id="@+id/child_one"
android:layout_height="match_parent"
android:layout_width="0dp"
android:gravity="center"
android:layout_weight="0.7">
<Button android:id="@+id/buttonhome1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:clickable="true"
android:focusable="false"
android:focusableInTouchMode="false"
android:background="@drawable/"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_below="@+id/buttonhome1"
android:text="@string/Main"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/child_two"
android:layout_height="match_parent"
android:layout_width="0dp"
android:gravity="center"
android:visibility="invisible"
android:layout_weight="1.8">
<Button android:id="@+id/childBtn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="true"
android:layout_marginTop="10dp"
android:layout_marginLeft="0dp"
android:background="@drawable/"/>
<TextView
android:id="@+id/childtxt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center_horizontal"
android:layout_centerVertical="@+id/childBtn1"
android:layout_toRightOf="@+id/childBtn1"
android:text="@string/text1"/>
<Button android:id="@+id/childBtn2"
android:layout_width="wrap_content"
android:layout_height= "wrap_content"
android:focusable="true"
android:layout_marginTop="10dp"
android:layout_marginLeft="80dp"
android:layout_below="@+id/childBtn1"
android:background="@drawable/"/>
<TextView
android:id="@+id/childtxt2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center_horizontal"
android:layout_below="@+id/childBtn1"
android:layout_toRightOf="@+id/childBtn2"
android:text="@string/text2"/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/child_three"
android:layout_height="match_parent"
android:visibility="visible"
android:layout_width="0dp"
android:layout_weight="1.8" />
<RelativeLayout
android:id="@+id/child_four"
android:layout_height="match_parent"
android:layout_width="0dp"
android:visibility="visible"
android:layout_weight="1.7"/>
</LinearLayout>
动态按钮之间的画线
我的线性布局中有三个相对布局。
Layout 1
有主按钮,当在主按钮上执行点击操作时,通过代码生成相对layout 2
的动态按钮。
我的问题是,我可以使用图形类通过动态方式在布局中绘制线条来连接主按钮和layout 2
中的子按钮吗?
答案 0 :(得分:2)
将id设置为动态按钮,并使用带按钮ID的addRule()添加按钮下方的行。
RelativeLayout rLayout = (RelativeLayout) findViewById(R.id.your_relative_layout);
RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
// your button here
Button tv1 = new Button(this);
tv1.setText("Hello");
tv1.setLayoutParams(lparams);
tv1.setId(1);//id of the button
rLayout.addView(tv1);
// line here
RelativeLayout.LayoutParams lineparams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_PARENT, 1);
View line = new View(this);
lineparams.addRule(RelativeLayout.BELOW, 1);//specify the id of the button to add the line below the button
line.setLayoutParams(lineparams);
line.setBackgroundColor(getResources().getColor(android.R.color.black));
line.setId(2);
rLayout.addView(line);