Google推荐的图片加载库Glide介绍(与Picasso比较)一

在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech。这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。

它的成功让我非常感兴趣。我花了一整晚的时间把玩,决定分享一些自己的经验。在开始之前我想说,Glide和Picasso有90%的相似度,准确的说,就是Picasso的克隆版本。但是在细节上还是有不少区别的。

导入库

Picasso和Glide都在jcenter上。在项目中添加依赖非常简单:

Picasso

1
2
3
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >dependencies { de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >compile  de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: blue !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >'com.squareup.picasso:picasso:2.5.1' de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >} de>

Glide

1
2
3
4
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >dependencies { de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >compile  de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: blue !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >'com.github.bumptech.glide:glide:3.5.2' de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >compile  de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: blue !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >'com.android.support:support-v4:22.0.0' de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >} de>

Glide需要依赖Support Library v4,别忘了。其实Support Library v4已经是应用程序的标配了,这不是什么问题。

基础

就如我所说的Glide和Picasso非常相似,Glide加载图片的方法和Picasso如出一辙。

Picasso

1
2
3
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >Picasso. de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: rgb(0, 102, 153) !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >with de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >(context) de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.load( de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: blue !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >" http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg" de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >) de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.into(ivImg); de>

Glide

1
2
3
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >Glide. de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: rgb(0, 102, 153) !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >with de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >(context) de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.load( de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: blue !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >" http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg" de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >) de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.into(ivImg); de>

虽然两者看起来一样,但是Glide更易用,因为Glide的with方法不光接受Context,还接受Activity 和 Fragment,Context会自动的从他们获取。

with

同 时将Activity/Fragment作为with()参数的好处是:图片加载会和Activity/Fragment的生命周期保持一致,比如 Paused状态在暂停加载,在Resumed的时候又自动重新加载。所以我建议传参的时候传递Activity 和 Fragment给Glide,而不是Context。

默认Bitmap格式是RGB_565

下面是加载图片时和Picasso的比较(1920x1080 像素的图片加载到768x432的ImageView中)

firstload

可以看到Glide加载的图片质量要差于Picasso(ps:我看不出来哈),为什么?这是因为Glide默认的Bitmap格式是 de style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 12px; border: 0px; margin: 0px; padding: 0.2em 0px; border-radius: 3px; font-stretch: normal; line-height: normal; background-color: rgba(0, 0, 0, 0.0392157);" >RGB_565 de> ,比 de style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 12px; border: 0px; margin: 0px; padding: 0.2em 0px; border-radius: 3px; font-stretch: normal; line-height: normal; background-color: rgba(0, 0, 0, 0.0392157);" >ARGB_8888 de>格式的内存开销要小一半。下面是Picasso在ARGB8888下与Glide在RGB565下的内存开销图(应用自身占用了8m,因此以8为基准线比较):

ram1_1

如果你对默认的 de style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 12px; border: 0px; margin: 0px; padding: 0.2em 0px; border-radius: 3px; font-stretch: normal; line-height: normal; background-color: rgba(0, 0, 0, 0.0392157);" >RGB_565 de>效果还比较满意,可以不做任何事,但是如果你觉得难以接受,可以创建一个新的 de style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 12px; border: 0px; margin: 0px; padding: 0.2em 0px; border-radius: 3px; font-stretch: normal; line-height: normal; background-color: rgba(0, 0, 0, 0.0392157);" >GlideModule de>将Bitmap格式转换到 de style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 12px; border: 0px; margin: 0px; padding: 0.2em 0px; border-radius: 3px; font-stretch: normal; line-height: normal; background-color: rgba(0, 0, 0, 0.0392157);" >ARGB_8888 de>:

1
2
3
4
5
6
7
8
9
10
11
12
13
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >public class GlideConfiguration implements GlideModule { de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >  de> 
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >@Override de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >public void applyOptions(Context context, GlideBuilder builder) { de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >         de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: rgb(0, 130, 0) !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >// Apply options to the builder here. de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >         de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888); de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >} de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >  de> 
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >@Override de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >public void registerComponents(Context context, Glide glide) { de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >         de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: rgb(0, 130, 0) !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >// register ModelLoaders here. de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >} de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >} de>

de style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; font-size: 12px; border: 0px; margin: 0px; padding: 0.2em 0px; border-radius: 3px; font-stretch: normal; line-height: normal; background-color: rgba(0, 0, 0, 0.0392157);" >同时在 de style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; border: 0px; margin: 0px; padding: 0.2em 0px; border-radius: 3px; font-stretch: normal; line-height: normal;" >AndroidManifest.xml de>中将 de style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; border: 0px; margin: 0px; padding: 0.2em 0px; border-radius: 3px; font-stretch: normal; line-height: normal;" >GlideModule de>定义为 de style="box-sizing: border-box; font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; border: 0px; margin: 0px; padding: 0.2em 0px; border-radius: 3px; font-stretch: normal; line-height: normal;" >meta-da ta de> de>

1
2
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" ><meta-da ta android:name= de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: blue !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >"com.inthecheesefactory.lab.glidepicasso.GlideConfiguration" de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >             de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >android:value= de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: blue !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >"GlideModule" de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >/> de>

quality2

这样看起来就会好很多。

我们再来看看内存开销图,这次貌似Glide花费了两倍于上次的内存,但是Picasso的内存开销仍然远大于Glide。

ram2_1

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

1
2
3
4
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >Picasso. de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: rgb(0, 102, 153) !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >with de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >( de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: rgb(0, 102, 153) !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >this de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >) de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.load( de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: blue !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >" http://nuuneoi.com/uploads/source/playstore/cover.jpg" de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >) de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.resize(768, 432) de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.into(ivImgPicasso); de>

但是问题在于你需要主动计算ImageView的大小,或者说你的ImageView大小是具体的值(而不是wrap_content),你也可以这样:

1
2
3
4
5
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >Picasso. de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: rgb(0, 102, 153) !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >with de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >( de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: rgb(0, 102, 153) !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >this de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >) de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.load( de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: blue !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >" http://nuuneoi.com/uploads/source/playstore/cover.jpg" de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >) de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.fit() de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.centerCrop() de>
de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >     de> de style="font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; margin: 0px; padding: 0.2em 0px; border-radius: 3px; line-height: normal; font-stretch: normal; box-sizing: content-box !imp ortant; border: 0px !imp ortant; bottom: auto !imp ortant; float: none !imp ortant; height: auto !imp ortant; left: auto !imp ortant; outline: 0px !imp ortant; overflow: visible !imp ortant;; right: auto !imp ortant; top: auto !imp ortant; vertical-align: baseline !imp ortant; width: auto !imp ortant; min-height: inherit !imp ortant; color: black !imp ortant; background-image: none !imp ortant; background-attachment: initial !imp ortant; background-color: rgba(0, 0, 0, 0.0392157); background-size: initial !imp ortant; background-origin: initial !imp ortant; background-clip: initial !imp ortant; background- !imp ortant; background-repeat: initial !imp ortant;" >.into(ivImgPicasso); de>

现在Picasso的内存开销就和Glide差不多了。

memory3

虽然内存开销差距不到,但是在这个问题上Glide完胜Picasso。因为Glide可以自动计算出任意情况下的ImageView大小。


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
应用背景为变电站电力巡检,基于YOLO v4算法模型对常见电力巡检目标进行检测,并充分利用Ascend310提供的DVPP等硬件支持能力来完成流媒体的传输、处理等任务,并对系统性能做出一定的优化。.zip深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值