Android图片加载框架之Google推荐的图片加载库Glide

2024-06-06 09:18

本文主要是介绍Android图片加载框架之Google推荐的图片加载库Glide,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

参考链接:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html

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

上面链接中,已经讲的非常好,此篇博客就是按照这个链接的教程重新梳理一遍,并添加自己需要的拓展功能,持续更新...欢迎留言。

Gilde的强大之处第4点已经说明。

点我下载Demo

 

1,引入glide,在github上获取目前最新的。

 

dependencies {compile 'com.github.bumptech.glide:glide:3.7.0'
}

 

2,简单加载图片

 

 

Glide.with(context).load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg").into(ivImg);

注意:Glide的with方法不光接受Context,还接受Activity 和 Fragment,Context会自动的从他们获取。

如果对图片没有什么特殊要求,1,2两步 已经能够正常显示图片了,是不是很简单。

 

 

3,拓展Glide 的配置

(1)Glide为了减少内存,默认Bitmap格式是RGB_565,如果你想加载更高质量的图片。

(2)设置缓存的目录

   创建GlideConfiguration类,增加一些配置信息。设置Bitmap格式格式与缓存路径
   

public class GlideConfiguration implements GlideModule{@Overridepublic void applyOptions(Context context, GlideBuilder builder) {//设置图片的显示格式ARGB_8888builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);//设置磁盘缓存目录String downloadDirectoryPath= Environment.getExternalStorageDirectory()+"/glideCache";int cacheSize100MegaBytes = 100000000;builder.setDiskCache(new DiskLruCacheFactory(downloadDirectoryPath, cacheSize100MegaBytes));}@Overridepublic void registerComponents(Context context, Glide glide) {}
}

   AndroidManifest.xml中增加。  com.android.talon.glidedemo是你的包名。

 

 

 <meta-data android:name="com.android.talon.glidedemo.GlideConfiguration"android:value="GlideModule"/>

 

4,其他

 

    (1)为什么glide加载速度比其他框架要快一些。这来源于它的加载与缓存机制。

        加载机制上,Glide加载的大小和ImageView的大小是一致的,因此内存开销更小,速度更快。

        缓存机制上,Glide缓存的是跟ImageView尺寸相同的,因为图片很小,所以缓存与取数据显示图片就更快了。

       

      (2) 细心的你会发现,它会为每种大小的ImageView缓存 一次。尽管一张图片已经缓存了一次,但是假如你要在另外一个地方再次以不同尺寸显示,需要重新下载,调整成新尺寸的大小,然后将这个尺寸的也缓存起来。具体说来就是:假如在第一个页面有一个200x200的ImageView,在第二个页面有一个100x100的ImageView,这两个ImageView本来是要显示同一张图片,却需要下载两次。

不过,你可以改变这种行为,让Glide既缓存全尺寸又缓存其他尺寸:

 

                Glide.with(this).load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg").diskCacheStrategy(DiskCacheStrategy.ALL)//加载全尺寸.into(ivImageview);

下次在任何ImageView中加载图片的时候,全尺寸的图片将从缓存中取出,重新调整大小,然后缓存。

 

       (3)Glide 还支持加载Gif动画。

         

                 Glide.with(this).load("http://ww3.sinaimg.cn/mw690/e75a115bjw1f2f4t8ubcjg20b405tb2c.gif").into(ivImageview);

 

 

 

欢迎留言共同探讨。

 

这篇关于Android图片加载框架之Google推荐的图片加载库Glide的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1035698

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

防近视护眼台灯什么牌子好?五款防近视效果好的护眼台灯推荐

在家里,灯具是属于离不开的家具,每个大大小小的地方都需要的照亮,所以一盏好灯是必不可少的,每个发挥着作用。而护眼台灯就起了一个保护眼睛,预防近视的作用。可以保护我们在学习,阅读的时候提供一个合适的光线环境,保护我们的眼睛。防近视护眼台灯什么牌子好?那我们怎么选择一个优秀的护眼台灯也是很重要,才能起到最大的护眼效果。下面五款防近视效果好的护眼台灯推荐: 一:六个推荐防近视效果好的护眼台灯的

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF