Zxx*_*xxx 4 android image android-imageview android-asynctask picasso
我有一个列表视图,我在其中加载了具有人名的图像.列表视图中有大约538个项目.我从网址获取人物的图像.目前我正在做以下事项: -
Picasso.with(getContext()).load(url).resize(70,70).onlyScaleDown().into(im1);
URL中存在的图像非常大,一些图像的加载需要花费大量时间,并且在加载时也会占用我的内存.有人可以帮我快速有效地加载图像.
可以在以下URL中找到一个人的示例图像: -
https://theunitedstates.io/images/congress/original/D000626.jpg
Lui*_*rra 10
您可以使用onlyScaleDown()调整大小
Picasso
.with(context)
.load(imageUrl)
.resize(6000, 2000)
.onlyScaleDown() // the image will only be resized if it's bigger than 6000x2000 pixels.
.into(imageViewResizeScaleDown);
Run Code Online (Sandbox Code Playgroud)
或者你可以使用 fit()
Picasso
.with(context)
.load(imageUrl)
.fit()
// call .centerInside() or .centerCrop() to avoid a stretched image
.into(imageViewFit);
Run Code Online (Sandbox Code Playgroud)
fit()测量目标ImageView的尺寸,并在内部使用resize()将图像大小减小到ImageView的尺寸.fit()有两点需要了解.首先,调用fit()可以延迟图像请求,因为Picasso需要等到可以测量ImageView的大小.其次,您只能将fit()与ImageView一起用作目标(稍后我们将查看其他目标).
优点是图像处于尽可能低的分辨率,而不会影响其质量.较低的分辨率意味着要在缓存中保留较少的数据.这可以显着降低图像在应用内存占用中的影响.总之,如果您希望在更快的加载时间内降低内存影响,fit()是一个很好的工具.
| 归档时间: |
|
| 查看次数: |
5995 次 |
| 最近记录: |