我正在尝试创建一个总是显示2个图像的布局,将屏幕长度平均分成两半,屏幕上不留空白(即使图像是中心裁剪的)。
到目前为止,我有以下代码,但这会在屏幕底部留下大量空白空间。我在“LinearLayout”中使用“RelativeLayout”的原因是因为我希望我的text1视图位于图像1的下半部分(与image1重叠)。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="230dp"
android:layout_marginBottom="3dp" >
<ImageView
android:id="@+id/img1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:contentDescription="@string/picture"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center"
android:padding="5dp"
android:textColor="#fff" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="230dp"
android:layout_marginBottom="3dp" >
<ImageView
android:id="@+id/img2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:contentDescription="@string/picture"
android:scaleType="centerCrop" />
</RelativeLayout>
答案 0 :(得分:2)
您正在将每个布局的高度硬编码为230dp,这可能会导致问题。在线性布局中,您应该使用权重来均匀分布屏幕区域。
在两个相对布局中使用android:layout_weight =“1”
点击此处查看更多信息
答案 1 :(得分:1)
您描述的布局是一个简单的加权LinearLayout
。只需将以下属性添加到LinearLayout
:
android:weightSum="2"
然后对于每个RelativeLayout
,将height属性更改为:
android:layout_height="0px"
并将以下属性添加到同一RelativeLayout
s:
android:layout_weight="1"
答案 2 :(得分:0)
如果要在图像视图上重叠textview并在框架布局上使用布局权重,请尝试使用框架布局
布局xml的示例代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="3dp"
android:layout_weight="0.5" >
<ImageView
android:id="@+id/img1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Test"
android:gravity="center"
android:layout_gravity="center_vertical|bottom"
android:padding="5dp"
android:textColor="@android:color/black" />
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="3dp"
android:layout_weight="0.5" >
<ImageView
android:id="@+id/img2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:scaleType="centerCrop" />
</FrameLayout>