线性布局中的线宽百分比

时间:2014-11-14 12:52:44

标签: android android-layout

android中有百分比宽度的选项吗?我试图将我的2行设置为40%并将文本设置为20%,但我真的不知道如何实现这一目标。我现在有固定的宽度。

            <LinearLayout
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:weightSum="1">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="14dp"
                android:id="@+id/line2"
                android:background="@drawable/line"
                android:layout_gravity="center_horizontal"
                android:contentDescription="@string/line" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceSmall"
                android:text="@string/or"
                android:textAllCaps="true"
                android:gravity="center"
                android:id="@+id/textView"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp" />

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:id="@+id/imageView"
                android:background="@drawable/line"
                android:layout_gravity="center_horizontal"
                android:layout_weight="2.18"
                android:contentDescription="@string/line" />

        </LinearLayout>

这是来自android studio的屏幕,以便更好地理解:screen

2 个答案:

答案 0 :(得分:1)

您可以使用属性android:layout_weight。 像这样:

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weightSum="5" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="14dp"
            android:id="@+id/line2"
            android:background="@drawable/line"
            android:layout_gravity="center_horizontal"
            android:layout_weight="2"
            android:contentDescription="@string/line" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="@string/or"
            android:textAllCaps="true"
            android:gravity="center"
            android:layout_weight="1"
            android:id="@+id/textView"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp" />

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/imageView"
            android:background="@drawable/line"
            android:layout_gravity="center_horizontal"
            android:layout_weight="2"
            android:contentDescription="@string/line" />

    </LinearLayout>

请注意,我已为LinearLayout下的每个元素添加了权重,并且我已将android:weightSum中的LinearLayout更改为5。

答案 1 :(得分:0)

尝试这样,

 <LinearLayout
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:weightSum="1">

        <ImageView
            android:layout_width="0dp"
            android:layout_height="14dp"
            android:id="@+id/line2"
            android:background="@drawable/line"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.40"
            android:contentDescription="@string/line" />

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="@string/or"
            android:textAllCaps="true"
            android:gravity="center"
            android:layout_weight="0.20"
            android:id="@+id/textView"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp" />

        <ImageView
            android:layout_width="0dp"
            android:layout_height="14dp"
            android:id="@+id/imageView"
            android:background="@drawable/line"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.40"
            android:contentDescription="@string/line" />

    </LinearLayout>