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

2018-01-08  本文已影响1187人  萤火虫叔叔

用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'

截图如下:


image.png

其他相关优质文章:

上一篇 下一篇

猜你喜欢

热点阅读