为什么毕加索的fit()。centerInside()在横向模式下不起作用?

时间:2018-08-12 15:23:13

标签: android image rotation picasso landscape-portrait

我正在使用称为ScrollGalleryView的VEINHORN库加载图像列表。 代码如下:

  @Override
public void loadMedia(Context context, final ImageView imageView, final MediaLoader.SuccessCallback callback) {
    Picasso.get()
            .load("file://" + uri)
            .placeholder(R.drawable.placeholder_image)
            .fit().centerInside()
            .into(imageView, new ImageCallback(callback));
}

@Override
public void loadThumbnail(Context context, final ImageView thumbnailView, final MediaLoader.SuccessCallback callback) {
    Picasso.get()
            .load("file://"+uri)
            .resize(thumbnailWidth == null ? 100 : thumbnailWidth,
                    thumbnailHeight == null ? 100 : thumbnailHeight)
            .placeholder(R.drawable.placeholder_image)
            .centerInside()
            .into(thumbnailView, new ImageCallback(callback));
}

这是将收集的图像加载到PicassoLoader的代码:

for (String uri : uriList) {
    infoImages.add(MediaInfo.mediaLoader(new PicassoImageLoader(uri)));  
    scrollGalleryView.addMedia(MediaInfo.mediaLoader(new PicassoImageLoader(uri))); }

设备处于“人像”状态时,一切正常,但在“风景”中,毕加索不能很好地使用 fit()。centerInside()。图像的高度大于设备屏幕的高度。

但是,当您滚动到图库中的下一幅图像并返回到上一幅图像时, fit()。centerInside()可以正常工作,即height与屏幕的高度匹配。返回纵向模式后,图像与父母的宽度和高度不匹配,就像第二张照片一样。

请参见以下示例: enter image description here enter image description here

0 个答案:

没有答案