Picasso加载长图,宽度铺满屏幕,高度自适应

用Picasso加载长图非常简单方便。只需Picasso.with(mContent) .load(url) .into(mImageView)即可。

1、用法

layout布局

<ImageView
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/placeholder_img" />

java代码

Picasso.with(this.getContext())
.load(url)
.into(mImageView);

正文结束

2、容易踩的坑

Picasso千万不要调用fit函数
因为fit函数的原理是,图片加载完成后,会回去测量ImageView的高度,根据ImageView的宽和高设置实际显示的尺寸。当layout_weight设置了wrap_content,在图片加载未完成时,ImageView的实际高度为0,当调用fit函数时,会以0作为ImageView的高度显示图片,所以最终导致看不到图片。这个bug找了两个小时,所以记录下来,希望大家快速跳过这个坑。

错误演示1:
layout布局

<ImageView
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/placeholder_img" />

java代码

Picasso.with(this.getContext())
.load(url)
.fit()
.into(mImageView);

现象:图片看不到。

错误演示2:
layout布局

<ImageView
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="500dp"
    android:src="@drawable/placeholder_img" />

java代码

Picasso.with(this.getContext())
.load(url)
.fit()
.into(mImageView);

现象:图片被压缩变形。

3、Picasso是啥

Picasso是一个强大的图片加载、缓存框架,强烈推荐。
使用方式:在app的build.gradle中引入Picasso的依赖

compile 'com.squareup.picasso:picasso:2.5.2'

截图如下:

《Picasso加载长图,宽度铺满屏幕,高度自适应》 image.png

其他相关优质文章:

欢迎加我微信,拉进群交流哦!

《Picasso加载长图,宽度铺满屏幕,高度自适应》 微信二维码

    原文作者:萤火虫叔叔
    原文地址: https://www.jianshu.com/p/c5dfbaceb9c4
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞