linearlayout中的imageview权重

时间:2012-08-28 17:54:32

标签: android android-layout android-linearlayout android-layout-weight

我有这个布局:

<?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="wrap_content"
    android:gravity="center_vertical"
    android:orientation="horizontal"
    android:minWidth="100dp" >

    <TextView
        android:id="@+id/txt_what_way"
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="4"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="3">
        <ImageView
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_launcher"/>
    </LinearLayout>

    <LinearLayout
        android:layout_height="wrap_content"
        android:layout_width="0dp"
        android:layout_weight="3">
        <ImageView
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:scaleType="fitCenter"
            android:src="@drawable/ic_launcher"/>
    </LinearLayout>

</LinearLayout>

我希望它看起来像:

  • TextView - 宽度的40%,使用ImageView进行布局 - 使用30%的布局,使用 - - ImageView - 宽度的30%。

然而,输出是:

TextViewImageViewImageView----------------free space----------------------------------

2 个答案:

答案 0 :(得分:1)

在你的情况下使用android:weightSum =“10” 使用android:background代替android:src,用这个

替换你的xml文件

<TextView
    android:id="@+id/txt_what_way"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:layout_weight="4"
    android:text="test"
    android:textAppearance="?android:attr/textAppearanceMedium" />

        <ImageView
        android:layout_width="fill_parent"
        android:layout_height="20dp"
       android:layout_weight="3"
        android:background="@drawable/s1"/>


    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="20dp"
        android:layout_weight="3"
         android:background="@drawable/s1"/>
</LinearLayout>

你可能会得到扭曲的图像

答案 1 :(得分:0)

这应该这样做,虽然它会扭曲你的形象。

 <?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="wrap_content"
            android:gravity="center_vertical"
            android:minWidth="100dp"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/txt_what_way"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="4"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <ImageView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="3"
                android:scaleType="fitCenter"
                android:src="@drawable/icon" />

            <ImageView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="3"
                android:scaleType="fitCenter"
                android:src="@drawable/icon" />

        </LinearLayout>