我在4个不同的LinearLayout
RelativeLayout
4种不同的LinearLayout包含Imageview
(1 imageview
,2 imageview
,3 imageview
或4 imageview
),具体取决于可供使用的图像数量具体布局。
我成功实现了1 imageview
,2 imageview
布局但无法获得3 imageview
或4 imageview
我发布了预期的图片
我尝试了QuiltView库 My Previous post ..没有达到预期的布局。
还尝试了StaggeredGridView ...库显示了很多错误...
因此应用我的自定义逻辑来获得预期的布局
<RelativeLayout android:id="@+id/rel_news_grid_photos_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dip"
android:layout_below="@+id/rel_news_grid_photos_2"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="horizontal"
android:padding="5dp"
android:background="#FFFFFF">
<ImageView
android:id="@+id/img_grid_3_1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:src="@drawable/b"
android:scaleType="fitXY"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="vertical"
android:padding="5dp"
android:background="#FFFFFF">
<ImageView
android:id="@+id/img_grid_3_2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/b"
android:scaleType="fitXY"
android:layout_marginLeft="5dp"/>
<ImageView
android:id="@+id/img_grid_3_3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/b"
android:scaleType="fitXY"
android:layout_marginLeft="5dp"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:1)
您应首先了解weight
和LinearLayout
关系。以下代码适用于3个ImageView。
<RelativeLayout android:id="@+id/rel_news_grid_photos_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dip"
android:layout_below="@+id/rel_news_grid_photos_2"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="horizontal"
android:weightSum="1"
android:padding="5dp"
android:background="#FFFFFF">
<ImageView
android:id="@+id/img_grid_3_1"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="0.5"
android:scaleType="fitXY"
android:src="@drawable/b" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="200dp"
android:layout_weight="0.5"
android:orientation="vertical"
android:weightSum="1"
android:padding="5dp"
android:background="#FFFFFF">
<ImageView
android:id="@+id/img_grid_3_2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.5"
android:src="@drawable/b"
android:scaleType="fitXY"
android:layout_marginLeft="5dp"/>
<ImageView
android:id="@+id/img_grid_3_3"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.5"
android:src="@drawable/b"
android:scaleType="fitXY"
android:layout_marginLeft="5dp"/>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
修改 weightsum
是当前LinearLayout
的权重之和。例如,您的LinearLayout
有2个子项,权重为0.5,因此权重将为1.如果未设置此参数,则默认值为1。