我正在尝试创建一个由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以匹配父级的高度,它的宽度应该与按比例缩放它一样多。
答案 0 :(得分:2)
在图像视图上添加线性布局。只是图像视图,没有别的。 :)希望它有所帮助
编辑1:正如提及的许多其他答案一样,使用layout_weight
属性也有助于解决此问题。
答案 1 :(得分:1)
在imageview上添加权重1,以便为textview提供空间
答案 2 :(得分:1)
正如我在你的答案帖子中你引用KISHORE_ZE的评论中所提到的,它似乎仅对特定大小的图像以及特定屏幕密度和分辨率有帮助。因此,虽然它在您当前的设备上看起来是可以接受的,但它可能会在另一个设备上混乱。我建议您弄清楚要用于图像的布局的哪个部分,并使用android:weight
和ImageView
的{{1}}属性来实现想要的结果。
答案 3 :(得分:0)
正如@KISHORE_ZE所说,这解决了这个问题。
&#34;将图像视图放在线性布局中。只是图像视图。没有其他的。 &#34;