Glide、Picasso和Fresco

Glide、Picasso和Fresco都是目前Android图片加载的主流框架。


Glide与Picasso使用方式及其相似,都是链式一行代码即可搞定。

一、Glide

compile 'com.github.bumptech.glide:glide:3.7.0'
加上v4包

Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);


Glide.with(myFragment).load(url).centerCrop().placeholder(R.drawable.loading_spinner).crossFade().into(myImageView);

二、Picasso

compile 'com.squareup.picasso:picasso:2.5.2'

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);


Picasso.with(context).load(url).resize(50, 50).centerCrop().into(imageView)


两者对比:

1.显然Glide更易用,因为Glide的with方法不光接受Context,还接受Activity 和 Fragment,Context会自动的从他们获取。

2.Glide加载的图片质量要差于Picasso,但几乎难以分辨,而且Glide的加载速度更快,但也需要更大的空间来缓存。

(最近项目中用Picasso加载了一张4209*4209的图片(我也不知道什么鬼...),根据网速的不同,页面绘制完成之后,图片要等1到3秒,而且滑动相当卡顿,换成Glide之后瞬间流畅。。)

原因在于Picasso是加载了全尺寸的图片到内存,然后让GPU来实时重绘大小。而Glide加载的大小和ImageView的大小是一致的,因此更小。当然,Picasso也可以指定加载的图片大小的,resize方法。

3.Picasso和Glide在磁盘缓存策略上有很大的不同。Picasso缓存的是全尺寸的,而Glide缓存的是跟ImageView尺寸相同的。

4.Glide可以加载GIF动态图,而Picasso不能。

5.Picasso (v2.5.1)的大小约118kb,而Glide (v3.5.2)的大小约430kb。

6.Picasso和Glide的方法个数分别是840和2678个。


另外:

Picasso是Square(美国一家移动支付公司)出的,官网介绍配合OkHttp使用更佳。

Square也是出了一堆的精品:Picasso、okhttp、otto、dagger、retrofit。。。

传送门:http://square.github.io/

Glide是谷歌出的,作者是bumptech


三、Fresco

compile 'com.facebook.fresco:fresco:0.12.0'
下面的依赖需要根据需求添加:

dependencies {// 在 API < 14 上的机器支持 WebP 时,需要添加compile 'com.facebook.fresco:animated-base-support:0.12.0'// 支持 GIF 动图,需要添加compile 'com.facebook.fresco:animated-gif:0.12.0'// 支持 WebP (静态图+动图),需要添加compile 'com.facebook.fresco:animated-webp:0.12.0'compile 'com.facebook.fresco:webpsupport:0.12.0'// 仅支持 WebP 静态图,需要添加compile 'com.facebook.fresco:webpsupport:0.12.0'
}
Fresco使用起来比Glide和Picasso更加简单,但是初始化配置要复杂一点。

1.application初始化

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();Fresco.initialize(this);}
}

2.加入命名空间

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:fresco="http://schemas.android.com/apk/res-auto"android:layout_height="match_parent"android:layout_width="match_parent">
3.加入SimpleDraweeView

<com.facebook.drawee.view.SimpleDraweeViewandroid:id="@+id/my_image_view"android:layout_width="130dp"android:layout_height="130dp"fresco:placeholderImage="@drawable/my_drawable"/>
4.开始加载图片

Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI(uri);
剩下的,Fresco会替你完成:
显示占位图直到加载完成;
下载图片;
缓存图片;
图片不再显示时,从内存中移除;
等等等等。


-------------------------传送门-------------------------


1.Glide

github:https://github.com/bumptech/glide

使用详解:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html

http://blog.csdn.net/shangmingchao/article/details/51125554


2.Picasso

github:https://github.com/square/picasso

官网:http://square.github.io/picasso/

使用详解:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0731/1639.html


3.Fresco

github:https://github.com/liaohuqiu/fresco-docs-cn

官方文档:https://www.fresco-cn.org/docs/index.html

使用详解:http://www.open-open.com/lib/view/open1451915129323.html



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22914.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

27 个Python数据科学库实战案例 (附代码)

为了大家能够对人工智能常用的 Python 库有一个初步的了解&#xff0c;以选择能够满足自己需求的库进行学习&#xff0c;对目前较为常见的人工智能库进行简要全面的介绍。 1、Numpy NumPy(Numerical Python)是 Python的一个扩展程序库&#xff0c;支持大量的维度数组与矩阵运算…

原生代码加载网络图片和Volley和Picasso的简单介绍和优缺点对比

网路下载图片&#xff0c;并以滚动列表的方式展示图片资源&#xff0c;是一种典型的Android App开发场景&#xff0c;但是如何更好的去实现这种效果一直是Android程序员所头疼的事情。比如&#xff0c;将下载的图片数据存储到本地&#xff0c;那就会造成一个原声Android代码的卡…

【历史上的今天】10 月 21 日:最短命的流媒体;Imgur 创始人出生;王安申请磁芯存储器专利

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2021 年 10 月 21 日&#xff0c;在 1883 年的今天&#xff0c;伊曼纽尔诺贝尔&#xff08;Noble&#xff09;诞生&#xff0c;以他命名的诺贝尔奖每年会授予世界各国在…

在AWS上部署、监控和扩展机器学习模型

作者|Aparna Dhinakaran 编译|Flin 来源|towardsdatascience 部署健壮的、可扩展的机器学习解决方案仍然是一个非常复杂的过程,需要大量的人力参与,并做出很多努力。因此,新产品和服务需要很长时间才能上市,或者在原型状态下就被放弃,从而降低了行业内的对它的兴趣。那么,…

使用Lambda和S3构建高度可扩展的Imgur克隆

因此&#xff0c;我之前两次尝试在一夜之间成为百万富翁的尝试已经失败了。 当然&#xff0c;我设法鼓起了一点兴奋&#xff0c;但是我还没有法拉利坐在我自己家的车道上…… 这第三次尝试肯定是赢家&#xff0c;对吗&#xff1f; 我将建立一个可以与流行图像托管网站Imgur媲…

php匿名图文贴程序,使用imgur api v3使用php匿名上传图像

我计划使用其api匿名上传图像到imgur,我在匿名上传类别中注册了我的应用程序,并获得客户端ID和客户端密码,如何使用php将图像上传到imgur并将图像直接检索到图像&#xff1f; 任何人都可以建议任何示例的链接&#xff1f; 这是我试图做的,但我得到错误“致命错误&#xff1a;最…

uPic 图床配置教程 - Imgur

uPic 图床配置教程 - Imgur 配置项说明Client ID 获取方式 配置项说明 Client ID: Applications Client ID Client ID 获取方式 1.打开Imgur 官网并登陆 2.进入应用注册页面 3.按要求填写表单信息 4.注意Authorization type选项必须选择OAuth 2 authorization without a cal…

在线图片托管服务imgur

免费的图片分享网站imgur 什么是imgur 网址:https://imgur.com/ Imgur于2009年由俄亥俄大学一位大三学生Alan Schaaf创办&#xff0c;很快就获得了很多人的关注。 Imgur是一个在线图片托管服务网站。网站于2009年2月23日由阿兰沙夫创建。Imgur为用户提供免费图片托管服务&a…

Wallpaper Engine 提取/导出原壁纸

文章目录 前言一、壁纸选取二、提取壁纸总结 前言 本教程基于大佬制作的pkg解压项目&#xff0c;为小白提供的简单教程&#xff0c;项目源地址 https://github.com/notscuffed/repkg 一、壁纸选取 打开 Wallpaper Engine&#xff0c; 选择想要提取的壁纸&#xff0c;右键选择…

微信壁纸小程序V1.2.0(自带后台上传图片)

前篇&#xff1a;微信壁纸头像小程序&#xff08;附源码&#xff09;_热衷与自由的博客-CSDN博客_头像小程序源码 前言 在上篇文章中&#xff0c;我给大家介绍了一个纯前端的微信壁纸小程序&#xff0c;也简单教会大家如何去搭建&#xff0c;但是这个小程序的图片是通过网上开放…

Wallpaper壁纸提取得到tex文件,tex文件转图像,tex文件转png,tex文件提取壁纸,Wallpaper壁纸提取无法得到图像文件,RePKG-GUI提取得到tex文件而不是图像的解决方法

之前我们介绍了如何利用RePKG-GUI工具从Wallpaper壁纸的sence.pkg文件提取壁纸&#xff0c;但最近在提取壁纸时&#xff0c;我发现&#xff0c;有一小部分壁纸无法利用RePKG-GUI工具提取得到图像文件&#xff0c;而是会得到一个.tex类型的文件。 Bug是怎么产生的暂时不知道&am…

一键提取Wallpaper Engine壁纸 pkg格式壁纸图片素材导出教程

wallpaper engineer下载的壁纸文件并不能直接查看&#xff0c;在资源管理器中打开后会有一个scene.pkg的文件中。并不能打开&#xff0c;网上搜了些解决办法&#xff0c;记录一下。 软件下载链接如下&#xff1a; 点我下载 提取码&#xff1a;kwft 下载后直接解压点击RePKG-GU…

(转载)《HelloGitHub》第 82 期

《HelloGitHub》第 82 期 原文链接&#xff1a;HelloGitHub&#xff5c;第 82 期https://hellogithub.com/periodical/volume/82 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目&#xff0c;每月 28 号更新一期。 这里有好玩和入门级的开源项目、开源书籍、实战项目、企业…

23/04/16使用pyecharts绘制中国地图并显示城市

需求 近日几个高中朋友都上岸研究生&#xff0c;某人提议做一个求学路线图&#xff0c;这种技术活儿当然就交给我了。 一共是两幅图&#xff0c;本科城市分布图和研究生城市分布图背景是中国地图在地图中标记大学所在城市在标记点上显示每个人的头像附录显示大学名称每个人本…

ChatGPT中的提示工程(Prompt)怎么做?DAIR.AI最新《提示工程指南》,全面讲述提示技术,附书册课件视频...

来源&#xff1a;专知 提示工程是一门相对较新的学科&#xff0c;用于开发和优化提示&#xff0c;以有效地将语言模型(LM)用于各种应用和研究主题。提示工程技能有助于更好地理解大型语言模型(LLM)的能力和局限性。 研究人员使用prompt engineering来提高LLM在广泛的常见和复杂…

ChatGPT引发混乱!数千种期刊:它不能成为论文作者

本文来源&#xff1a;艾思科蓝整理自财新网、卫报、中国科学报、百度百科&#xff0c;编辑&#xff1a;募格学术 ChatGPT诞生才两个月&#xff0c;但它给全世界投下的「重磅炸弹」就没停下来过。 日前&#xff0c;中国人民大学首都发展与战略研究院副院长郭英剑也发表了题为“2…

【算法动画图解】:安利一款昨天发现的app

偶然看到一个app&#xff1a;算法动画图解&#xff0c;用动画的形式帮你把基础算法捋一遍&#xff0c;个人觉得很赞。 如下是目录。后面有空我会逐个大类更新具体内容。 1、分类 &#xff08;1&#xff09;冒泡排序 &#xff08;2&#xff09;选择性排序 &#xff08;3&…

chatgpt赋能python:如何用Python制作动画?

如何用Python制作动画&#xff1f; Python作为一种优秀的编程语言&#xff0c;可以用于不同领域的编程。其中&#xff0c;Python也可以被用于创建动画。使用Python的主要好处之一是其强大的Matplotlib库&#xff0c;它可以帮助我们更轻松地创建可视化效果。 什么是Matplotlib…

GAN生成漫画脸

最近对对抗生成网络GAN比较感兴趣&#xff0c;相关知识点文章还在编辑中&#xff0c;以下这个是一个练手的小项目~ (在原模型上做了&#xff0c;为了减少计算量让其好训练一些。) 一、导入工具包 import tensorflow as tf from tensorflow.keras import layersimport numpy a…

拥抱毒瘤 DDD!

点击关注公众号&#xff0c;Java干货及时送达&#x1f447; 来源&#xff1a;小姐姐味道 牛B的人物&#xff0c;早已经厌倦了中英文混杂&#xff0c;他们更进一步&#xff0c;使用中英文缩写&#xff0c;对普通人进行降维打击。更厉害的&#xff0c;造就新的名词&#xff0c;并…