首页 / 更多教程 / Glide 魔法般的自定义扩展
Glide 魔法般的自定义扩展
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Glide 魔法般的自定义扩展,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1915字,纯文字阅读大概需要3分钟。
内容图文
![Glide 魔法般的自定义扩展](/upload/InfoBanner/zyjiaocheng/1099/c99978d4ad5644fe8a120dd665888260.jpg)
使用过Glide的朋友都明白,简单的用法就是:
Glide.with(context) .load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg") .into(ivImg);
而Picasso看起来像是Glide的“兄弟”一样,但Glide的with中提供了多种传递形式,如activity和Fragment,这样设计的目无非是想跟随宿主的生命周期来做事儿。
而且从夹在图片的参数上看默认加载为RGB_565图片,从查找的资料显示RGB_565与ARGB_8888图片相比,在比较普通的手机上肉眼似乎不能区分。
自然RGB_565质量相比较差,运行时占据的内存也是差了不少,这可就是我们的重点啦,有效的减缓了oom机会!如果你仍要使用高质量的图片,那么Glide确实提供了GlideModule方式自定义设置,
在清单文件application中插入meat-data即可:
< meta-data android:name ="com.inthecheesefactory.lab.glidepicasso.GlideConfiguration" android:value ="GlideModule" />
重写GlideModule:
@Override public void applyOptions(Context context, GlideBuilder builder) {//既然拿到了GlideBuilder我们就应该可以做很多事儿啦!
// DecodeFormat.PREFER_ARGB_8888 // DecodeFormat.PREFER_RGB_565 builder.setDecodeFormat(。。。); } @Override public void registerComponents(Context context, Glide glide) { }
没错既然重写了GlideModule,并且拿到了GlideBuilder,如果到此为止的话那自定义的Glide就显得太过于Low啦!
除了上面代码中设置了图片的质量参数外,重头戏就在于这两个方法:
builder.setMemoryCache( new LruResourceCache( customMemoryCacheSize ); builder.setBitmapPool( new LruBitmapPool( customBitmapPoolSize );//关于Lru可以自己了解
现在可以望文生义,就是用来设置Glide要占用RAM的一个缓存阀值额度。
方式可选如下:
1)完全自定义标准
int maxMemory = (int) Runtime.getRuntime().maxMemory();//获取系统分配给应用的总内存大小int memoryCacheSize = maxMemory / 6;//设置图片内存缓存占用整个app的比例
2)按照Glide默认标准,可以自己在做调整
MemorySizeCalculator calculator = new MemorySizeCalculator(context); int defaultMSize = calculator.getMemoryCacheSize(); int defaultBPoolSize = calculator.getBitmapPoolSize();
在持久化缓存方面Glide也是提供了相当ok的api:
builder.setDiskCache( new InternalCacheDiskCacheFactory(context,xxxxxx)); // 使用内部存储和外部存储做缓存时只能二选一 builder.setDiskCache( new ExternalCacheDiskCacheFactory(context,xxxxxx));
而且也可以使用DiskLruCacheFactory制定外部路径:
builder.setDiskCache( new DiskLruCacheFactory( Environment.getDownloadCacheDirectory().getPath(), xxxxx));
如果确定这么做对你有用,那就试试吧!
原文:http://www.cnblogs.com/zzq-include/p/6232480.html
内容总结
以上是互联网集市为您收集整理的Glide 魔法般的自定义扩展全部内容,希望文章能够帮你解决Glide 魔法般的自定义扩展所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。