如何将图像按钮对齐到另一个图像按钮下方?
How can I align an imagebutton under anothe one?
我在一个水平线性布局中有三个图像按钮,我想在左上图像按钮的正下方再添加一个图像按钮(当左上图像按钮开始和结束时,我想要对下面的图像按钮做同样的事情)。一切都在垂直线性布局中。我无法将向下的 imageButton 与向上的 imageButton 垂直对齐。我怎样才能做到这一点?有什么想法吗?
我的代码是这样的:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp"
android:gravity="center">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton11"
android:background="@drawable/image"
android:layout_gravity="center"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton12"
android:background="@drawable/image"
android:layout_gravity="center"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton13"
android:background="@drawable/image"
android:layout_gravity="center"
android:layout_marginRight="30dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp"
android:gravity="left">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton14"
android:background="@drawable/image"
android:layout_marginRight="30dp"/>
</LinearLayout>
对您的 xml 进行了更改,尝试使用
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp"
android:gravity="center_horizontal">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton11"
android:background="@drawable/image"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton14"
android:layout_below="@+id/imageButton11"
android:align_left="@+id/imageButton11"
android:align_right="@+id/imageButton11"
android:layout_marginTop="10dp"
android:background="@drawable/image"
android:layout_marginRight="30dp"/>
</RelativeLayout>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton12"
android:background="@drawable/image"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton13"
android:background="@drawable/image"
android:layout_marginRight="30dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
你可以尝试在你想要在另一个imageButton下面的imageButton中使用RelativeLayout,并将它设置在你想要在它之上的imagebutton下面
android:layout_below="@+id/imagebutton1"
- 第一个 LinearLayout(内部)标签的引力是 "center",而第二个 LinearLayout 是 "left"。
- 三个 ImageButton 标签的引力为 "center",而最后一个则完全没有引力。
我想这就是你要找的。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton11"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton12"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton13"
android:layout_marginRight="30dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton14"
android:layout_marginRight="30dp"/>
</LinearLayout>
希望对您有所帮助!
编辑部分:
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.id_layout);
TableLayout tableLayout = new TableLayout(this);
tableLayout.setStretchAllColumns(true);
tableLayout.setGravity(Gravity.CENTER_HORIZONTAL);
TableLayout.LayoutParams layoutParams = new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,TableLayout.LayoutParams.WRAP_CONTENT);
tableLayout.setVerticalScrollBarEnabled(true);
tableLayout.setLayoutParams(layoutParams);
TableRow tableRow = new TableRow(this);
ImageButton imageButton = new ImageButton(this);
ImageButton imageButton1 = new ImageButton(this);
ImageButton imageButton2 = new ImageButton(this);
tableRow.addView(imageButton);
tableRow.addView(imageButton1);
tableRow.addView(imageButton2);
tableLayout.addView(tableRow);
TableRow tableRow1 = new TableRow(this);
tableRow1.setPadding(0, 0, 0, 40);
TableRow.LayoutParams params = new TableRow.LayoutParams();
params.span = 1;
ImageButton imageButton3 = new ImageButton(this);
tableRow1.addView(imageButton3);
tableLayout.addView(tableRow1);
linearLayout.addView(tableLayout);
希望对您有所帮助!
使用 RelativeLayout 比通过 TableLayout 或 LinearLayout 更容易做到这一点。如果您愿意为图像按钮使用固定宽度 (这对于图像按钮来说应该不是问题),这里有一种布局可以解决您的问题。
(我有为了简单起见,在下面的布局中使用了 Buttons,但它也适用于 imageButtons。)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<Button
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/btn1"
android:text="Button1" />
<Button
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/btn2"
android:layout_toRightOf="@id/btn1"
android:text="Button2" />
<Button
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/btn3"
android:layout_toRightOf="@id/btn2"
android:text="Button3" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4"
android:id="@+id/btn4"
android:layout_below="@id/btn1"
android:layout_alignLeft="@id/btn1"
android:layout_alignRight="@id/btn1"/>
</RelativeLayout>
外观如下:
我在一个水平线性布局中有三个图像按钮,我想在左上图像按钮的正下方再添加一个图像按钮(当左上图像按钮开始和结束时,我想要对下面的图像按钮做同样的事情)。一切都在垂直线性布局中。我无法将向下的 imageButton 与向上的 imageButton 垂直对齐。我怎样才能做到这一点?有什么想法吗?
我的代码是这样的:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp"
android:gravity="center">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton11"
android:background="@drawable/image"
android:layout_gravity="center"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton12"
android:background="@drawable/image"
android:layout_gravity="center"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton13"
android:background="@drawable/image"
android:layout_gravity="center"
android:layout_marginRight="30dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp"
android:gravity="left">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton14"
android:background="@drawable/image"
android:layout_marginRight="30dp"/>
</LinearLayout>
对您的 xml 进行了更改,尝试使用
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp"
android:gravity="center_horizontal">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton11"
android:background="@drawable/image"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton14"
android:layout_below="@+id/imageButton11"
android:align_left="@+id/imageButton11"
android:align_right="@+id/imageButton11"
android:layout_marginTop="10dp"
android:background="@drawable/image"
android:layout_marginRight="30dp"/>
</RelativeLayout>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton12"
android:background="@drawable/image"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton13"
android:background="@drawable/image"
android:layout_marginRight="30dp"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
你可以尝试在你想要在另一个imageButton下面的imageButton中使用RelativeLayout,并将它设置在你想要在它之上的imagebutton下面
android:layout_below="@+id/imagebutton1"
- 第一个 LinearLayout(内部)标签的引力是 "center",而第二个 LinearLayout 是 "left"。
- 三个 ImageButton 标签的引力为 "center",而最后一个则完全没有引力。
我想这就是你要找的。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton11"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton12"
android:layout_marginRight="30dp"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton13"
android:layout_marginRight="30dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="20dp">
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageButton14"
android:layout_marginRight="30dp"/>
</LinearLayout>
希望对您有所帮助!
编辑部分:
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.id_layout);
TableLayout tableLayout = new TableLayout(this);
tableLayout.setStretchAllColumns(true);
tableLayout.setGravity(Gravity.CENTER_HORIZONTAL);
TableLayout.LayoutParams layoutParams = new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT,TableLayout.LayoutParams.WRAP_CONTENT);
tableLayout.setVerticalScrollBarEnabled(true);
tableLayout.setLayoutParams(layoutParams);
TableRow tableRow = new TableRow(this);
ImageButton imageButton = new ImageButton(this);
ImageButton imageButton1 = new ImageButton(this);
ImageButton imageButton2 = new ImageButton(this);
tableRow.addView(imageButton);
tableRow.addView(imageButton1);
tableRow.addView(imageButton2);
tableLayout.addView(tableRow);
TableRow tableRow1 = new TableRow(this);
tableRow1.setPadding(0, 0, 0, 40);
TableRow.LayoutParams params = new TableRow.LayoutParams();
params.span = 1;
ImageButton imageButton3 = new ImageButton(this);
tableRow1.addView(imageButton3);
tableLayout.addView(tableRow1);
linearLayout.addView(tableLayout);
希望对您有所帮助!
使用 RelativeLayout 比通过 TableLayout 或 LinearLayout 更容易做到这一点。如果您愿意为图像按钮使用固定宽度 (这对于图像按钮来说应该不是问题),这里有一种布局可以解决您的问题。
(我有为了简单起见,在下面的布局中使用了 Buttons,但它也适用于 imageButtons。)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal">
<Button
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/btn1"
android:text="Button1" />
<Button
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/btn2"
android:layout_toRightOf="@id/btn1"
android:text="Button2" />
<Button
android:layout_width="120dp"
android:layout_height="wrap_content"
android:id="@+id/btn3"
android:layout_toRightOf="@id/btn2"
android:text="Button3" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button4"
android:id="@+id/btn4"
android:layout_below="@id/btn1"
android:layout_alignLeft="@id/btn1"
android:layout_alignRight="@id/btn1"/>
</RelativeLayout>
外观如下: