【发布时间】:2018-08-17 03:08:41
【问题描述】:
我想保留 imageView 的纵横比并调整它的大小以尽可能大地填充/适合,而不会使用 Picasso 扭曲/改变它的纵横比。
到目前为止,我发现了这个:
建议使用:
.fit().centerInside()
但是当我尝试它时:
Picasso.with(this).load(boxart)
.fit().centerInside()
.into(imageItem);
连同我的 XML:
<RelativeLayout
android:id="@+id/rl_ListView1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_centerInParent="true"
android:layout_gravity="left"
android:layout_weight="0.3" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:scaleType="fitXY"
android:layout_gravity="left" />
</RelativeLayout>
但是图像仍然显得失真(它看起来太长太瘦 - 它的原始纵横比失真),我不确定为什么。
【问题讨论】:
-
Javadoc for
fit()表示它将“调整图像大小以完全适合目标 ImageView”,即忽略纵横比。 -
是的,但
centerInside()应该纠正这一点,即。 e.调整图像大小,使其适合ImageView,同时保持纵横比。我怀疑android:scaleType:fitXY是问题所在。 -
这实际上很有帮助...图像不再失真并保持其纵横比 - 但是它没有正确调整大小/填充(周围有空白)i.stack.imgur.com/ZpCZ3.jpg@987654324 @
-
你是指图片上方和下方的空格吗?我认为这是不可避免的,因为图像的纵横比不符合
ImageView的纵横比。或者您是否想调整ImageView的大小,使其适合图像的纵横比 - 在您的情况下,这会使整体更宽一些。在这种情况下,看看这篇博文:medium.com/@jpardogo/…——我最初在那里评论了一些澄清问题,但似乎当他搬到 medium.com 时,所有的 cmets 都丢失了......再次询问您是否需要更多帮助!
标签: android android-layout picasso android-relativelayout