Android图形缓存库Picasso内存优化

2019-03-20 10:46|来源: 网路

picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。

picasso使用简单,如下

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
主要有以下一些特性:
   在adapter中回收和取消当前的下载;
   使用最少的内存完成复杂的图形转换操作;
   自动的内存和硬盘缓存;
   图形转换操作,如变换大小,旋转等,提供了接口来让用户可以自定义转换操作;
   加载载网络或本地资源;



刚使用Picasso时,发现有点卡卡的,查看了一下Memory,直接疯长到了几十兆,看了一下官网

Transform images to better fit into layouts and to reduce memory size.意思大概就是可以通过设置图片的大小来适应布局与减少内存.

OK,那么问题解决了。

Picasso.with(context)
  .load(url)
  .resize(50, 50)//节约内存
  .centerCrop()
  .into(imageView)

相关问答

更多

Android - 使用picasso加载图像,而不将其存储在缓存中(Android - use picasso to load image without storing it in cache)

毕加索在毕加索建筑商中通过skipMemoryCache()支持这一点。 一个例子如下所示。 Picasso.with(context).load(imageUrl) .error(R.drawable.error) .placeholder(R.drawable.placeholder) .skipMemoryCache() .into(imageView); 使用新 ...

将库(例如Picasso)导入Android Studio的奥秘(Mysteries of importing libraries (eg, Picasso) to Android Studio)

不按顺序回答您的问题: 1.外部build.gradle在其中有一条评论,内容如下: //顶级构建文件,您可以在其中添加所有子项目/模块共有的配置选项。 内部build.gradle文件是每个模块; 它位于内部模块中,您可以在其中完成大部分工作,从而增加依赖性并进行设置。 大多数时候你不修改外面的一个。 不幸的是,它令人困惑,容易犯错,而当你这样做时,你会得到非常奇怪的错误信息。 这是一项正在进行的工作。 2.使用最近创建的项目,如果它有它的build.gradle文件: dependencies ...

Android库毕加索还是Glide?(Android library Picasso or Glide? [duplicate])

Glide和Picasso都不是完美的。 Glide将图像加载到内存并执行缓存的方式比使图像加载速度更快的Picasso更好。 此外,它还有助于防止流行OutOfMemoryError的应用程序。 GIF动画加载是Glide提供的一种杀死功能。 无论如何,毕加索解码图像质量比滑翔更好。 https://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en Neither Glide nor Picasso is ...

Picasso库是否将图像保存到缓存中?(Does Picasso library save image to the cache?)

毕加索自动缓存图像。 您可以通过调用来检查Picasso从哪里加载图像 setIndicatorsEnabled(true) 在Builder上。 Picasso automatically caches images. You can check where Picasso loaded an image from by calling setIndicatorsEnabled(true) on the Builder.

Android + Picasso:如何从URL正确显示缓存中的图像(Android + Picasso: How to show images from URL properly form cache)

我也试图在开始时使用Picasso,并发现他们的缓存系统很糟糕。 它会缓存我下载的一些图像,但不会缓存其他图像,因此会留下很多带占位符的图像。 我建议你试试Universal-Image-Loader( https://github.com/nostra13/Android-Universal-Image-Loader )。 我目前正在使用它来缓存我的应用程序中的所有图像,并且它可以完美地工作(大约200个图像atm)。 Finally got the problem - API is retur ...

Android picasso缓存图像(Android picasso cache images)

毕加索自动缓存加载的图像,以便下次他们从缓存中加载。 您可以通过启用指示器来检查是否从Web,缓存或磁盘加载了映像 setIndicatorsEnabled(true) 每个图像都会显示指标,指定从哪里加载图像。 我从这里得到了参考 Picasso automatically caches the loaded images, So that next time they will be loaded from the cache. You can check whether the image ...

如何在GridView中最好地优化Picasso?(How do I best optimize Picasso in a GridView?)

尝试使用Glide 。 它应该比毕加索更快,更节省内存。 代码也类似于Picasso,因此您不需要对代码进行太多更改。 示例代码: Glide.with(mContext) .load(mCameraImages.getUris().get(position)) .error(android.R.drawable.ic_dialog_alert) .centerCrop() .into(view); 查看Glide vs Picasso的文章,了解两者之间的详细差 ...

应用了不同变换的毕加索缓存(Picasso cache with different transforms applied)

原始图像将存储在磁盘缓存中。 确保您的服务器正在发送正确的标头,以便在您需要的任何时间段内进行缓存。 当第二个请求发出并且映像已经在磁盘缓存中时,它将立即返回。 默认情况下,磁盘缓存仅适用于Android 4.0及更高版本,因为它是在引入内置HTTP客户端时。 对于所有API级别的缓存,请在您的应用中包含[OkHttp] [1]。 毕加索会自动看到OkHttp并使用它。 这不仅可以为您提供任何地方的缓存,还可以提供全面的更好的HTTP客户端。 Original images will be sto ...

毕加索Android内存问题(Picasso Android memory issues)

你在调用GC和内存是否达到最小值? 这表示没有对使用过的位图的强引用。 一切都好 。 由于将大图像解码为位图,因此会占用大量内存。 位图格式非常重。 这与此无关。 我建议您降低生成图像的分辨率。 You are calling GC and memory falls into minimum value? This says that there is no strong references to used bitmaps. Everything is OK. Large memory usag ...