如何动态地将ImageViews和TextViews安排到Android中的线性布局?

时间:2016-06-08 13:22:40

标签: java android android-layout layout

我有一个片段,用户可以从中选择他们房间的功能(如下图1所示),这些片段作为布尔值存储在后端,如果设置则为true,否则为false。

fragment used to capture room features

片段的XML:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent"

	<!-- none core xml formatting and views -->

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingBottom="20dp"
            android:weightSum="1"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/border_bottom_top"
            android:id="@+id/details_amenities_layout">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal"
                android:baselineAligned="false">

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_bic_imageview"
                        android:src="@mipmap/ic_bic"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_bic_amenity"
                        android:id="@+id/add_room_bic_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_alignParentBottom="true"
                        android:layout_centerHorizontal="true"
                        android:layout_below="@+id/add_room_bic_imageview" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_entrance_imageview"
                        android:src="@mipmap/ic_entrance"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_entrance_amenity"
                        android:id="@+id/add_room_entrance_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_alignParentBottom="true"
                        android:layout_centerHorizontal="true" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_toilet_imageview"
                        android:src="@mipmap/ic_toilet"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_toilet_amenity"
                        android:id="@+id/add_room_toilet_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_alignParentBottom="true"
                        android:layout_centerHorizontal="true" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_kitchen_imageview"
                        android:src="@mipmap/ic_kitchen"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_kitchen_amenity"
                        android:id="@+id/add_room_kitchen_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_alignParentBottom="true"
                        android:layout_centerHorizontal="true" />
                </RelativeLayout>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal"
                android:baselineAligned="false"
                android:layout_marginTop="8dp" >

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_parking_imageview"
                        android:src="@mipmap/ic_parking"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_parking_amenity"
                        android:id="@+id/add_room_parking_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_centerHorizontal="true"
                        android:layout_below="@+id/add_room_parking_imageview" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_wifi_imageview"
                        android:src="@mipmap/ic_wi_fi"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_wifi_amenity"
                        android:id="@+id/add_room_wifi_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_alignParentBottom="true"
                        android:layout_centerHorizontal="true" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_secure_imageview"
                        android:src="@mipmap/ic_secure"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_secure_amenity"
                        android:id="@+id/add_room_secure_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_below="@+id/add_room_secure_imageview"
                        android:layout_centerHorizontal="true" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:id="@+id/add_room_furnished_imageview"
                        android:src="@mipmap/ic_furnished"
                        style="@style/amenities_image_style"
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_furnished_amenity"
                        android:id="@+id/add_room_furnished_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_below="@+id/add_room_furnished_imageview"
                        android:layout_centerHorizontal="true" />

                </RelativeLayout>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal"
                android:baselineAligned="false"
                android:layout_marginTop="5dp" >

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_borehole_imageview"
                        android:src="@mipmap/ic_borehole"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_borehole_amenity"
                        android:id="@+id/add_room_borehole_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_alignParentBottom="true"
                        android:layout_centerHorizontal="true" />

                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_prezesa_imageview"
                        android:src="@mipmap/ic_zesa"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_zesa_amenity"
                        android:id="@+id/add_room_prezesa_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_alignParentBottom="true"
                        android:layout_alignEnd="@+id/add_room_prezesa_imageview"
                        android:layout_centerHorizontal="true" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_wardrobe_imageview"
                        android:src="@mipmap/ic_wardrobe"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_wardrobe_amenity"
                        android:id="@+id/add_room_wardrobe_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_alignParentBottom="true"
                        android:layout_centerHorizontal="true" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:paddingTop="5dp" >

                    <ImageView
                        android:layout_width="wrap_content"
                        android:layout_height="38dp"
                        android:id="@+id/add_room_prewater_imageview"
                        android:src="@mipmap/ic_prewater"
                        android:padding="5dp"
                        android:layout_alignParentTop="true"
                        android:layout_centerHorizontal="true" />

                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:textAppearance="?android:attr/textAppearanceMedium"
                        android:text="@string/add_room_water_amenity"
                        android:id="@+id/add_room_prewater_label"
                        android:textSize="16sp"
                        android:gravity="center"
                        android:layout_below="@+id/add_room_prewater_imageview"
                        android:layout_alignRight="@+id/add_room_prewater_imageview"
                        android:layout_alignEnd="@+id/add_room_prewater_imageview"
                        android:layout_centerHorizontal="true" />
                </RelativeLayout>
            </LinearLayout>

        </LinearLayout>

		<!-- none core views -->

        <android.support.design.widget.FloatingActionButton android:id="@+id/add_room_step3_fab"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:src="@mipmap/ic_done_white_48dp"
            android:layout_marginBottom="@dimen/fab_margin" />

    </LinearLayout>
</ScrollView>

当然,所选特征不同,因此从后端获得的视图数量不是恒定的。我能够检索设置的功能并在Java中实例化正确的视图,即如果有5个设置功能包括 BIC Wifi 厨房等,我能够确定这些并设置必要的图像资源和文本。

现在的问题是如何使用Java代码排列获得的视图以复制上面的布局,因为我只能知道查询后端后设置的功能。期望的最终结果必须如下图所示。希望它有意义。

enter image description here

0 个答案:

没有答案