根据高度调整ImageView宽度

时间:2016-04-08 17:03:12

标签: android

我正在尝试创建一个由ImageView和TextView组成的简单LinearLayout。

ImageView应该缩放以匹配LinearLayout高度,而不会丢失比例。

这是我目前拥有的xml。

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

    <ImageView
        android:id="@+id/logo"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:adjustViewBounds="true"
        android:background="#CCCCCC"
        android:scaleType="fitCenter"
        android:src="@drawable/strip" />

    <TextView
        android:id="@+id/logoText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ellipsize="marquee"
        android:singleLine="true"
        android:text="what an awesome text"
        android:textSize="18sp" />

</LinearLayout>

使用上面的xml,结果是ImageView高度确实与LinearLayout高度匹配,它的宽度将与src图像相同,但渲染图像将正确缩放并居中,但这样就离开了ImageView本身填充了大约90%的Layout宽度,因为它是src图像的宽度,没有为TextView留下空间。

我只想缩放ImageView以匹配父级的高度,它的宽度应该与按比例缩放它一样多。

4 个答案:

答案 0 :(得分:2)

在图像视图上添加线性布局。只是图像视图,没有别的。 :)希望它有所帮助

编辑1:正如提及的许多其他答案一样,使用layout_weight属性也有助于解决此问题。

答案 1 :(得分:1)

在imageview上添加权重1,以便为textview提供空间

答案 2 :(得分:1)

正如我在你的答案帖子中你引用KISHORE_ZE的评论中所提到的,它似乎仅对特定大小的图像以及特定屏幕密度和分辨率有帮助。因此,虽然它在您当前的设备上看起来是可以接受的,但它可能会在另一个设备上混乱。我建议您弄清楚要用于图像的布局的哪个部分,并使用android:weightImageView的{​​{1}}属性来实现想要的结果。

答案 3 :(得分:0)

正如@KISHORE_ZE所说,这解决了这个问题。

&#34;将图像视图放在线性布局中。只是图像视图。没有其他的。 &#34;