Android 毕加索,图像加载和调整大小

Android 毕加索,图像加载和调整大小,android,performance,picasso,Android,Performance,Picasso,我的应用程序中有很多图像,我正在使用调整大小并自定义许多列表的宽度和高度,我正在从服务器上获取所有列表的大尺寸图像。使用resize是一个好主意,还是我应该在需要的地方从服务器获取较小的图像,并从毕加索调用中删除resize(),这将提高应用程序的性能。我的主要问题是,在应用程序中大量使用resize是否会降低性能,因为它需要调整应用程序中的每个图像的大小。请尝试此选项以指定图像高度和宽度 Picasso.with(mContext) .load(uri).resize

我的应用程序中有很多图像,我正在使用
调整大小
并自定义许多列表的宽度和高度,我正在从服务器上获取所有列表的大尺寸图像。使用
resize
是一个好主意,还是我应该在需要的地方从服务器获取较小的图像,并从毕加索调用中删除
resize()
,这将提高应用程序的性能。我的主要问题是,在应用程序中大量使用
resize
是否会降低性能,因为它需要调整应用程序中的每个图像的大小。

请尝试此选项以指定图像高度和宽度

Picasso.with(mContext)
             .load(uri).resize(100, 100).centerCrop()
             .placeholder(R.drawable.type_pic)
             .error(R.drawable.type_pic)
             .into(holder.icon);

Picasso
将只
resize()
图像一次,因为它将被缓存(特别存储在中),除非缓存达到最大限制,否则缓存将删除图像以便它可以存储新图像。再次访问删除的图像将触发另一个
resize()
调用,但对于仍在缓存中的图像,毕加索不需要执行
resize()

如果您对服务器拥有完全控制权,那么最好创建一个具有可自定义图像大小参数的API。比方说,您只需要一个缩略图,因此您只需提供图像的宽度和高度,而不是下载一个大图像,因为它不会给缩略图带来好处,还可以节省一些带宽。

毕加索的resize()有助于提高渲染性能

但是,如果实际文件大小较大,则下载时间将比实际大小的下载时间要长

所以,请使用服务器上的已调整大小的图像,或者,如果无法针对每个分辨率调整图像的大小,请同时使用这两种方法


这样,您至少可以将加载时间减少到相当长的时间。

@gurvinder,似乎有很多关于性能改进的场景

场景1高分辨率图像->大图像大小->加载时间较长

解决方案-您可以根据app max分辨率支持降低图像分辨率

场景2哪个图像库?毕加索、格莱德、UniversalImageLoader或壁画
解决方案-我建议你选择壁画,对我来说,壁画给人留下了深刻的印象。缓存和性能都比我想象的快得多。

我正在使用这种代码,但我的问题是,使用这种调整大小的方法会对应用程序的性能产生很大影响吗?从服务器获取较小的图像并减少毕加索调用的调整大小,这不是一种更好的方法吗?它会提高性能,还是没有效果?是的,它会,但使用这2种方法太过分了(只选择一种),如果您可以访问服务器代码,我的第二个建议是更好的方法。结论:传输的数据越少,事务越快。很好,我想我之前错过了另一个选择。谢谢:)欢迎你的朋友。到目前为止,我试过毕加索、阿奎里和格莱德,喜欢毕加索。我现在就试试壁画:)谢谢。