用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
其他相关优质文章:
网友评论