重量不适用于android studio中的Liner布局

时间:2016-09-19 12:34:23

标签: android android-layout

我希望我的应用能够展示图片。照片的尺寸应该更大,照片描述就像Instagram一样。但它不适用于我的代码。 我目前的结果如下:

enter image description here  这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">



<LinearLayout
android:layout_weight="2"
    android:layout_width="match_parent"
    android:layout_height="0dp">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/ivFish"/>

</LinearLayout>

<LinearLayout
    android:orientation="vertical"
    android:layout_gravity="center"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <TextView
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="fish name"
        android:id="@+id/textFishName"
        android:layout_marginLeft="5dp"
        android:layout_toRightOf="@id/ivFish"
        android:layout_toLeftOf="@+id/textPrice"/>

    <TextView
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="price"
        android:id="@+id/textPrice"
        android:textColor="@color/colorAccent"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        />

    <TextView
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Small Text"
        android:id="@+id/textSize"
        android:layout_marginLeft="5dp"
        android:layout_below="@id/textFishName"
        android:layout_toRightOf="@id/ivFish"
        android:layout_toEndOf="@id/ivFish"
        android:textColor="#666"/>

    <TextView
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="sd"
        android:id="@+id/textType"
        android:layout_marginLeft="5dp"
        android:layout_below="@id/textSize"
        android:layout_toRightOf="@id/ivFish"
        android:textColor="#666"/>

</LinearLayout>
    </LinearLayout>

5 个答案:

答案 0 :(得分:1)

如果您需要将图片显示为match_parent,则需要将android:scaleType属性fitXY添加到ImageView中,如下所示:

<ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:id="@+id/ivFish"/>

答案 1 :(得分:1)

正如我所见,您想裁剪图像周围的空白区域。如果我更正,您需要添加

android:adjustViewBounds="true"

到你的ImageView。您还应该添加您的欲望scaleType。

答案 2 :(得分:0)

您缺少父布局的weightSum属性。

android:layout_weight适用于android:weightSum。所以首先将WeightSum添加到父布局。

答案 3 :(得分:0)

使用两个线性布局会使布局变得复杂。

如果您需要将图像对齐以逐个占据该图像下方的宽度和所有文本,则以下内容将起作用。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical" android:layout_width="match_parent"
     android:layout_height="match_parent"
    >

    <ImageView
        android:scaleType="fitXY"
        android:layout_width="match_parent"
        android:layout_weight="1"
        android:layout_height="0dp"
        android:id="@+id/ivFish"
        android:src="@drawable/icon"
        android:gravity="center"
        />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_weight="2"
        android:layout_height="0dp"
        android:orientation="vertical"
        android:gravity="center"
        >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="fish name"
        android:id="@+id/textFishName"
        android:layout_marginLeft="5dp"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="price"
        android:id="@+id/textPrice"
        android:textColor="@color/colorAccent"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="Small Text"
        android:id="@+id/textSize"
        android:layout_marginLeft="5dp"
        android:textColor="#666"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:text="sd"
        android:id="@+id/textType"
        android:layout_marginLeft="5dp"
        android:textColor="#666"/>
    </LinearLayout>
</LinearLayout>

答案 4 :(得分:0)