根据高度调整ImageView宽度

根据高度调整ImageView宽度

问题描述:

我正在尝试使ImageView和TextView组成一个简单的LinearLayout。根据高度调整ImageView宽度

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%,因为它是src图像的宽度,所以TextView没有空间。

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

+0

尝试将scaleType更改为cropCenter –

+0

centerCrop将匹配父级的高度,宽度问题仍然存在,图像从中间裁剪以适合视图。我需要适应视图,而不是裁剪图像。 – HelderMPinhal

+1

将图像视图置于线性布局中。只是图像视图。没有其他的。 –

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

编辑1:正如许多其他的答案中提到使用layout_weight属性也将有助于解决这个问题。

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

“把摄像画面中的线性布局,只是摄像画面。没有别的。”

+0

您能否将我的标记标记为正确?选中标记。谢谢? –

+0

你能解释它到底如何解决这个问题吗?如果您需要其他图像以相同的布局显示,而图像的尺寸是其两倍,那该怎么办?三倍大?它会如何表现?我没有检查这个解决方案,但我有强烈的感觉,它只能解决这个具有一定大小的特定图像的问题,甚至更重要的是,在一定的屏幕密度上。尝试设置一些更大的图像到你的ImageView,看看它的行为如何。 –

在imageview的增加重量1,因此将有TextView的

空间正如我在评论中提及在您引用KISHORE_ZE的回复帖子下,它似乎只对特定尺寸的图像以及特定的屏幕密度和分辨率有帮助。所以虽然它在目前的设备上看起来是可以接受的,但它可能是一个混乱的另一个。我建议你找出你想要用于图像的布局的哪一部分,并使用ImageViewTextViewandroid:weight属性来达到想要的效果。

+0

当然没问题。但我认为把它放在一个线性布局将起作用。我知道它与列表视图一起工作。所以我有一种感觉,它会适用于所有图像。不过,正如我所说,我没有测试过它。 –