我试图将两个ImageView并排放在图像周围。我一直在使用Padding,Margin等,所有都有相同的效果(见下图)
你可以看到右边的图像向上移动,我该怎么做呢?
这是我使用的布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- Top Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/tab_headlines"
android:src="@drawable/headlines"
android:layout_margin="5sp"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/tab_headlines"
android:src="@drawable/headlines"
/>
</LinearLayout>
我将使用更多行的图像,因此额外的LinearLayout
答案 0 :(得分:2)
使用layout_weight
平均划分布局。请尝试以下代码:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- Top Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="6dp"
android:layout_marginRight="3dp"
android:layout_weight="1"
android:contentDescription="@string/tab_headlines"
android:src="@drawable/headlines" />
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:layout_marginRight="6dp"
android:layout_weight="1"
android:contentDescription="@string/tab_headlines"
android:src="@drawable/headlines" />
</LinearLayout>
</LinearLayout>
此外,请勿使用sp
指定布局尺寸。请改用dp
。
答案 1 :(得分:1)
修复垂直对齐方式:
在android:layout_height="match_parent"
ImageView
在android:layout_height="match_parent"
内使用ImageView
,它将与其LinearLayout
的父android:layout_height="wrap_content"
现在出现问题为什么ImageViews
的高度相同?
由于您LinearLayout's Height
中的automatically chosen from ImageView
,您的父Whose height is greater
将成为android:layout_height="wrap_content"
LinearLayout
的原因!
并使用android:layout_height="match_parent"
,您将使用身高较小的same height for ImageView
!
修复水平对齐:
使用android:layout_weight="equal weight value for btoh"
将您的代码更改为
<ImageView
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:contentDescription="@string/tab_headlines"
android:src="@drawable/headlines"
android:layout_margin="5sp"
/>
<ImageView
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:contentDescription="@string/tab_headlines"
android:src="@drawable/headlines"
/>
答案 2 :(得分:1)
您已为左侧图像指定了layout_margin,但未给出右侧图像。这就是问题所在。如果您只想连续两个图像,并且两者的图像大小相同,那么您可以使用layout_weight属性并为它们之间的空间填充。 所以,试试吧。它会工作。
<!-- Top Row -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:contentDescription="@string/tab_headlines"
android:src="@drawable/headlines"
android:padding="3dp"
/>
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:contentDescription="@string/tab_headlines"
android:src="@drawable/headlines"
android:padding="3dp"
/>
</LinearLayout>