自动调整ImageView(除了TextView)和父高度,同时保持宽高比

时间:2013-12-01 13:14:25

标签: android android-layout imageview aspect-ratio

我正在努力解决新手问题。

我有一个像这样定义的布局:(它用作列表视图项目)

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/articleSmallImageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:adjustViewBounds="true"
        android:scaleType="fitStart" />

    <LinearLayout
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:layout_weight="2"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/newsIntroText"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="5dp"
            android:text="TextView"
            android:textColor="@color/black" />

    </LinearLayout>
</LinearLayout>

我想要达到的目的是: 根据最高子项调整父级布局高度。在这种情况下,如果TextView高于ImageView,则ImageView纵横比应该是完整的,可以使用最大宽度,如果ImageView i高于TextView,则宽度应该是最大值,父级应该具有高度作为ImageView。

enter image description here

这实际上是我的应用程序的截图,在JB 4.3上运行。看起来像预期的那样。但是在ICS 4.0.3,4.0.4上它看起来像这样。

enter image description here

我看不出ImageVIew没有填充该空白区域的任何原因。

帮助..

1 个答案:

答案 0 :(得分:0)

为scaleType尝试值fitXY。顺便说一句,除非我遗漏了什么,我认为你的LinearLayout1是没用的。此外,像YouYou所说..如果在垂直布局中设置了权重,高度应为0dp,并且在水平线性布局中,宽度应设置为0dp以获得更好的性能。