首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Android从零单排系列九】《Android视图控件——ImageView

:同上,缩放后放右下角 fitXY:对图像横纵方向进行独立缩放,使得该图片安全适应imageview,但图片宽高比可能发生改变 center:保持原图大小,显示中心,当原图大小大于imageview大小...显示图片的几种方法简要分析_再见孙悟空_的博客-CSDN博客 四.图片加载框架 1.图片加载框架 imageloader picasso Glide Fresco ImageLoader:旨在为图像加载...Picasso:和Square的网络库一起能发挥最大作用,因为Picasso可以选择将网络请求的缓存部分交给了okhttp实现 Glide:模仿了Picasso的API,而且在他的基础上加了很多的扩展(...这会使得APP更加流畅,减少因图片内存占用而引发的OOM。为什么说5.0以下呢?因为5.0系统以后系统默认就是存储Ashmem区了。...2.渐进式加载JPEG图片,支持图片从模糊到清晰加载 3.图片可以任意的中心店显示ImageView,而不仅仅是图片的中心 4.JPEG图片改变大小也是native进行的,不是虚拟机的堆内存,同样减少

1.2K30

Universal-Image-Loader,android-Volley,PicassoFrescoGlide图片缓存库的联系与区别

这会使得APP更加流畅,减少因图片内存占用而引发的OOMFresco 低端机器上表现一样出色,你再也不用因图片内存占用而思前想后。...下面是PicassoARGB8888下与GlideRGB565下的内存开销图(应用自身占用了8m,因此8为基准线比较): ?...尝试将ImageView调整成不同大小,但不管大小如何Picasso只缓存一个全尺寸的。Glide则不同,它会为每种大小ImageView缓存一次。...尽管一张图片已经缓存了一次,但是假如你要在另外一个地方再次不同尺寸显示,需要重新下载,调整成新尺寸的大小,然后将这个尺寸的也缓存起来。...Glide的这种方式优点是加载显示非常快。而Picasso的方式则因为需要在显示之前重新调整大小而导致一些延迟。不过各有所长。

1.3K70
您找到你想要的搜索结果了吗?
是的
没有找到

PicassoGlideFresco对比分析

老牌的有ImageLoader,UIL,Volley,主流的有,PicassoGlideFresco等等,选择一款好的图片加载裤就成了我们的首要问题。...详细属性对比 接下来只详细对比FrescoGlide Picasso从各方面都比这两个弱,这里就不浪费时间了,如果想详细了解的可以看本人之前转载的一篇文章 http://blog.csdn.net...ImageView 独有的SimpleDraweeView 圆角, 圆形 需要自己实现圆角,继承自BitmapTransformation操作bitmap对象实现 通过RoundingParams设置参数...缓存图像大小 Glide则会根据ImageView控件尺寸获得对应的大小的bitmap来展示,从而缓存也可以针对不同的对象:原始图像(source),结果图像(result) 缓存原始图像 加载策略 Glide...5.0以下系统,Fresco将图片放到一个特别的内存区域(Ashmem区) 大大减少OOM更底层的Native层对OOM进行处理,图片将不再占用App的内存) 适用于需要高性能加载大量图片的场景

4.5K20

Carson带你学Android:最全面解析图片加载库Glide用法

功能特点 2.1 功能列表 从上面可以看出,Glide不仅实现了图片异步加载的功能,还解决了Android中加载图片时需要解决的一些常见问题 接下来,我会对Glide的每个功能点进行详细的介绍 2.2...(0.1f);//设置缩略图支持:先加载缩略图 然后加载全图 //传了一个 0.1f 作为参数,Glide 将会显示原始图像的10%的大小。...Picasso 只会缓存原始尺寸的图片,而 Glide 缓存的是多种规格,也就意味着 Glide 会根据你 ImageView大小来缓存相应大小的图片尺寸 比如你 ImageView 大小是200200...,为了避免oom和节省内存,最好使用ARGB_4444模式(节省一半的内存空间) 4.2 缺点 使用方法复杂 由于Glide其功能强大,所以使用的方法非常多,其源码也相对的复杂 包较大 5....相比其他图片加载库(Picasso & Fresco) 对比Picasso GlidePicasso 基础之上进行的二次开发做了不少改进,不过这也导致包比 Picasso 大不少,不过也就不到

79320

Android图片加载库:最全面解析Glide用法

从上面可以看出,Glide不仅实现了图片异步加载的功能,还解决了Android中加载图片时需要解决的一些常见问题 接下来,我会对Glide的每个功能点进行详细的介绍 2.2 功能介绍 2.2.1 关于图片加载...(0.1f);//设置缩略图支持:先加载缩略图 然后加载全图 //传了一个 0.1f 作为参数,Glide 将会显示原始图像的10%的大小。...Picasso 只会缓存原始尺寸的图片,而 Glide 缓存的是多种规格,也就意味着 Glide 会根据你 ImageView大小来缓存相应大小的图片尺寸 比如你 ImageView 大小是200...,为了避免oom和节省内存,最好使用ARGB_4444模式(节省一半的内存空间) 4.2 缺点 使用方法复杂 由于Glide其功能强大,所以使用的方法非常多,其源码也相对的复杂 包较大 5....相比其他图片加载库(Picasso & Fresco) 对比Picasso GlidePicasso 基础之上进行的二次开发做了不少改进,不过这也导致包比 Picasso 大不少,不过也就不到

3.3K10

Android图片加载开源库深度推荐,安利Fresco1、Universal-Image-Loader2、Picasso3、Glide4、Fresco

2、Picasso 没用过的飘过····/(ㄒoㄒ)/~~ 3、Glide 这是谷歌的亲孩子,自带缓存,支持GIF,WebP,缩略图,甚至是Video的第一帧,对Bitmap的复用和线程优化有着明显的优势...Glide也是支持“所有”的ImageView,使用过程中十分流畅,这里推荐两个库: GlidePalette 一个可以Glide加载时很方便使用Palette的库。...glide-transformations 处理各种图片显示效果的,先看下面的图片。为什么着重推荐这个,因为如果是用的是圆形的ImageView或者特殊裁剪的什么,那么很可能会有问题。 什么问题?...DownsampleEnabled来让图片压缩,不然全图展示超大的图片还是会有OOM,如果用了这个,底层Fresco就帮助你调整好了,回调给你的图片比例采样后一定不会OOM(虽然可以用七牛的图片处理)...(this, config); Fresco列表加载中一定要加上Resizing 来减少内存的开销,如果有必要,还可以滑动的时候做优化处理。

1.3K20

Glide用法与技巧以及优秀库的推荐

Gilde是Picasso的优化版最后就是Facebook的Fresco,听说极为强大和高效率,但是大小有4M。...Picasso缓存的是全尺寸的,而Glide缓存的是跟ImageView尺寸相同的。Glide的这种方式优点是加载显示非常快。而Picasso的方式则因为需要在显示之前重新调整大小而导致一些延迟。...4.Glide可以加载GIF动态图,而Picasso不能。 5.Picasso (v2.5.1)大小约为118KB,然而Glide (v3.5.2)的大小约为430KB。...项目中添加依赖非常简单: Picasso dependencies { compile 'com.squareup.picasso:picasso:2.5.1' } Glide dependencies...即缩放图像图像都测量出来等于或小于 ImageView 的边界范围,该图像将会完全显示,但可能不会填满整个ImageView

69320

Android图片加载框架最全解析(一),Glide的基本用法

指定图片大小 实际上,使用Glide绝大多数情况下我们都是不需要指定图片大小的。 在学习本节内容之前,你可能还需要先了解一个概念,就是我们平时加载图片的时候很容易会造成内存浪费。什么叫内存浪费呢?...关于图片压缩这方面,我之前也翻译过Android官方的一篇文章,感兴趣的朋友可以去阅读一下 Android高效加载大图、多图解决方案,有效避免程序OOM 。...而使用Glide,我们就完全不用担心图片内存浪费,甚至是内存溢出的问题。因为Glide从来都不会直接将图片的完整尺寸全部加载到内存中,而是用多少加载多少。...Glide会自动判断ImageView大小,然后只将这么大的图片像素加载到内存当中,帮助我们节省内存开支。...也正是因为Glide是如此的智能,所以刚才开始的时候我就说了,绝大多数情况下我们都是不需要指定图片大小的,因为Glide会自动根据ImageView大小来决定图片的大小

1.4K110

Glide ‘优’ 与 ‘愁’

当然 Glide 的使用方式也是仿照 Picasso 。所以几乎没有任何迁移成本,很多人也开始拥抱了 Glide. 当然在此期间 Facebook 也不甘寂寞横空出来开源了 fresco 。...没有 Glide 之前,常用的做法就是写了个自定义 view 然后 用一个 media 去播放。有了 Glide 之后几乎对于 GIF 无感知了的, 内部已经支持了的。...说到这里不得不提到一个头疼的OOM问题fresco 之所以很快闯入大家的视线,大概就是因为 Facebook 说他们使用了 native 内存规避掉了 OutOfMemoryError 问题。...官方的原话是这么说的,所以高版本上面依旧使用的Java 内存,所以不可避免依旧会占用内存。 提到内存,不得不说到另外一个笑话,fresco 最大只支持图片文件大小为 2M 。...fresco 更多是native实现。所以需要对NDK有所了解,但个人对NDK不太了解,相比较于 Glide, 同样遇到问题之后,修改源码的成本,Glide 成本更可控。前者可能就不太好下手了的。

91810

Glide三问—虾皮真题

说到图片加载框架,第一个想到的自然就是Glide,但是你真的了解它吗?如果面试问到相关问题你能顺利答出来吗? 还清楚其他的图片加载框架吗?各自有什么优缺点? 图片三级缓存可以说下吗?...Picasso的一半) Fresco: 最大的优势在于5.0以下(最低2.3)的bitmap加载。...5.0以下系统,Fresco将图片放到一个特别的内存区域(Ashmem区) 大大减少OOM更底层的Native层对OOM进行处理,图片将不再占用App的内存) 适用于需要高性能加载大量图片的场景...三级缓存:内存缓存,硬盘缓存,网络 内存缓存一般是使用LruCache,采用最近最少使用算法,设定一个缓存大小,当缓存到达这个大小之后,会将最老的数据移除,保证内存的充足,从而避免oom。...堆,而8.0之后像素数据存到native堆中 onLowMemory 当内存不足时,会回调onLowMemory方法,可以在里面进行一些内存的释放 内存泄漏 ImageView内存泄漏,界面被销毁的时候要记得取消图片加载任务

71130

Carson带你学Android:图片加载库Picasso学习教程

功能特点 2.1 功能列表 从上面可以看出,Picasso不仅实现了图片异步加载的功能,还解决了Android中加载图片时需要解决的一些常见问题 接下来,我会对Picasso的每个功能点进行详细的介绍....into(targetImageView); 2.2.2 图片转换 使用最少的内存完成复杂的图片转换,转换图片适合所显示的ImageView,来减少内存消耗 Picasso.with(context...步骤3:MainActivity中 ImageView targetImageView = (ImageView) findViewById(R.id.ImageView); String...)较其他图片加载库(GlideFresco)较差 自身无实现“本地缓存” 5....: Carson带你学Android:主流开源图片加载库对比(UIL、PicassoGlideFresco) Carson带你学Android:主流开源网络请求库对比(Volley、OkHttp

66320

android图片加载库Glide

Glide解决什么问题?...外部缓存 默认情况下PicassoGlide的外部缓存机制是非常不一样的,通过实验可以发现(1920x1080 像素的图片被加载到768x432像素的imageview中),Glide缓存的是768x432...当我们调整imageview大小时,Picasso会不管imageview大小是什么,总是直接缓存整张图片,而Glide就不一样了,它会为每个不同尺寸的Imageview缓存一张图片,也就是说不管你的这张图片有没有加载过...,就是它可以加快图片加载的速度(可以理解为空间换时间),而Picasso会造成一定的延迟,因为它在加载到imageview的时候,总是需要调整大小,确实Picasso有一个立即显示图片的方法(如下所示...总结 GlidePicasso都不是完美的,从某些方面来说,Glide图片的缓存上来说是比较不错的,因为它的速度比较快,另外,它也可以有效的防止OOM错误,而加载gif图片也是Glide的一大优势

1.8K60

如何设计一个图片加载框架

Bitmap像素存储位置 内存泄露:注意ImageView的正确引用,生命周期管理 列表滑动加载的问题:加载错乱、队满任务过多问题 当然,还有一些不是必要的需求,例如加载动画等。...1.软引用 强引用: 普通变量都属于强引用,比如 private Context context; 软应用: SoftReference,发生OOM之前,垃圾回收器会回收SoftReference...Glide内存开销是Picasso的一半,就是因为默认Bitmap格式不同。...Android 8.0 之后Bitmap像素内存放在native堆,Bitmap导致OOM问题基本不会在8.0以上设备出现了(没有内存泄漏的情况下) Fresco 的优点是:“5.0以下(最低2.3...常规的做法是给ImageView设置tag,tag一般是图片地址,更新ImageView之前判断tag是否跟url一致。

45730

基于开源项目搭建属于自己的技术堆栈

问题,应该尽量避免 3....透明的 GZIP 压缩减少下载数据大小 缓存响应避免重复的网络请求 OkHttp 在网络性能很差的情况下能够很好地工作,它能够避免常见的网络连接问题。... Facebook 推出的 Fresco 中,它增加了一级缓存,也就是 Native 缓存,这极大地降低了使用 Fresco 的 APP 出现 OOM 的概率。... adapter 中正常的处理 ImageView 回收和下载的取消 使用尽量小的内存实现复杂的图像变换 Picasso 中,我们使用一行代码即可实现图片下载并渲染到 ImageView 中。...Glide 的使用也可以使用一行代码来完成,语句如下 Glide.with(context).load(url).into(imageView); 7.4 Fresco Fresco 是 Facebook

1.8K70

(转载非原创)Android系统Bitmap内存分配原理与优化

与它在磁盘上36KB的大小,相差了整整70倍! 小技巧:如何查看dump文件中的图片 调试时,如果我们手头只有一个dump文件,往往需要还原图片内容,帮助定位问题。...,我们当前最流行的PicassoGlide为例。...仍然这张钢铁侠为例,图片本身是350px * 350px,当我们把它加载到200px * 200px的ImageView当中时,占用空间是0.49MB。...使Picasso达到与Glide同样的效果 Picasso的设计者也发现了这一缺点,提供一系列方法用来调整最终加载出来的图片尺寸,其一就是fit(),通过这个方法可以达到与Glide同样的效果。...注:v4开始,Glide将ARGB_8888作为默认配置。在那之前它一直默认使用RGB_565。

66520

Android系统Bitmap内存分配原理与优化

与它在磁盘上36KB的大小,相差了整整70倍! 小技巧:如何查看dump文件中的图片 调试时,如果我们手头只有一个dump文件,往往需要还原图片内容,帮助定位问题。...,我们当前最流行的PicassoGlide为例。...仍然这张钢铁侠为例,图片本身是350px * 350px,当我们把它加载到200px * 200px的ImageView当中时,占用空间是0.49MB。...使Picasso达到与Glide同样的效果 Picasso的设计者也发现了这一缺点,提供一系列方法用来调整最终加载出来的图片尺寸,其一就是fit(),通过这个方法可以达到与Glide同样的效果。...注:v4开始,Glide将ARGB_8888作为默认配置。在那之前它一直默认使用RGB_565。

1.1K20

Google推荐的图片加载库Glide介绍

开始之前我想说,GlidePicasso有90%的相似度,准确的说,就是Picasso的克隆版本。但是细节上还是有不少区别的。 导入库 PicassoGlide都在jcenter上。...Glide则不同,它会为每种大小ImageView缓存一次。尽管一张图片已经缓存了一次,但是假如你要在另外一个地方再次不同尺寸显示,需要重新下载,调整成新尺寸的大小,然后将这个尺寸的也缓存起来。...Glide则不同,它会为每种大小ImageView缓存一次。尽管一张图片已经缓存了一次,但是假如你要在另外一个地方再次不同尺寸显示,需要重新下载,调整成新尺寸的大小,然后将这个尺寸的也缓存起来。...虽然内存开销差距不到,但是在这个问题Glide完胜Picasso。因为Glide可以自动计算出任意情况下的ImageView大小。...上面提到的平滑度的问题依然存在,而且如果加载的是RGB565图片,那么缓存中的图片也是RGB565。 我尝试将ImageView调整成不同大小,但不管大小如何Picasso只缓存一个全尺寸的。

79320

Android从立项到上线——修仙之路

---- 9、图片处理 之前有自己封装过图片处理框架,核心是使用HttpUrlConnection实现加载,仿LruCache(近期最少使用排序)算法实现图片缓存。...但我们用的最多的还是ImageLoader、GlidePicassoFresco四大主流框架,接下来主要比较一下四个框架的各自特点: ImageLoader: 优点: 多线程下载,线程管理。...所以我建议传参的时候传递Activity 和 Fragment给Glide,而不是Context。 Glide可以加载GIF动态图。 Glide缓存的是跟ImageView尺寸相同的。...Picasso: 特点: adapter中需要取消已经不在视野范围的ImageView图片资源的加载,否则会导致图片错位,Picasso已经解决了这个问题。...总结:项目开发中,要适当的选择图片框架,ImageLoader太老已过时,且官方不再维护,所以不再考虑使用ImageLoader;Picasso能做的,Glide都能做到,就是Glide的图片质量会稍差一些

82020

Android图片开源库:最全面、详细的Picasso讲解

imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 从上面可以看出,Picasso不仅实现了图片异步加载的功能,还解决了Android中加载图片时需要解决的一些常见问题....into(targetImageView); 2.2.2 图片转换 使用最少的内存完成复杂的图片转换,转换图片适合所显示的ImageView,来减少内存消耗 Picasso.with(context....error(R.drawable.user_placeholder_error) .into(imageView); 2.2.4 Adapter中的回收不在视野的ImageView和取消已经回收的...步骤3:MainActivity中 ImageView targetImageView = (ImageView) findViewById(R.id.ImageView); String...加载速度等等)较其他图片加载库(GlideFresco)较差 自身无实现“本地缓存” 5.

1.7K30
领券