glide

Glide 网络加载图片的框架

匿名 (未验证) 提交于 2019-12-03 00:08:02
添加依赖: implementation 'com.github.bumptech.glide:glide:3.7.0' 使用方法: Glide . with ( context ) . load ( show_url ) //需要加载的图片url // .crossFade()//过渡动画 . dontAnimate () //关闭动画 . fitCenter () //图片与控件的适配 . diskCacheStrategy ( DiskCacheStrategy . SOURCE ) //缓存策略为:原始缓存 . placeholder ( R . drawable . picture_demo ) //加载过程显示的图片 . error ( R . drawable . picture_demo ) //加载失败显示的图片 . listener ( new RequestListener < String , GlideDrawable >() { //设置监听器 @Override public boolean onException ( Exception e , String model , Target < GlideDrawable > target , boolean isFirstResource ) { //返回错误时 return false ; }

Glide的学习之路

匿名 (未验证) 提交于 2019-12-02 23:57:01
一、基础的使用    Glide. with(getApplicationContext())   .load("11") // 加载指定的 url 的图片   .placeholder(1) // 指定图片未成功加载前显示的图片   .error(1) // 指定加载失败显示的图片   .override(1,1) // 指定图片的尺寸   .fitCenter() // 指定图片缩放类型   .centerCrop() // 指定图片缩放类型   .skipMemoryCache(true) // 跳过内存缓存   .diskCacheStrategy(DiskCacheStrategy. NONE) // 跳过磁盘缓存   .diskCacheStrategy(DiskCacheStrategy. RESOURCE) // 仅仅只缓存原来的全分辨率的图像   .diskCacheStrategy(DiskCacheStrategy. ALL) // 缓存所有的版本的图像   .diskCacheStrategy(DiskCacheStrategy. AUTOMATIC) //   .diskCacheStrategy(DiskCacheStrategy. DATA) // 缓存原始图片   .priority()   .into() //指定的控件 https://blog

Android Glide 加载图片

匿名 (未验证) 提交于 2019-12-02 22:56:40
0.借鉴文章地址:http://blog.csdn.net/zivensonice/article/details/51835802 和 http://www.cnblogs.com/zhaoyanjun/p/5404162.html 1.导包:compile 'com.github.bumptech.glide:glide:3.7.0' 2.基本用法   a.加载图片:1)加载URL图片: Glide .with( context) .load( URL) .into(mImageView);         2)加载SD卡里的图片-load(String string):Glide.with(context).load(Environment.getExternalStorageDirectory.getAbsolutePath() + "/temp.jpg").into(mImageView);         3)加载SD卡里的图片-load(File file):Glide.with(context).load(new File(Environment.getExternalStorageDirectory.getAbsolutePath() + "/temp.jpg")).into(mImageView);         4)加载SD卡里的图片-load(Uri

Android Glide使用

匿名 (未验证) 提交于 2019-12-02 22:56:40
AS 引用 dependencies { } // 加载本地图片 File file = new File(getExternalCacheDir() + "/image.jpg"); Glide.with(this).load(file).into(imageView); // 加载应用资源 int resource = R.drawable.image; Glide.with(this).load(resource).into(imageView); // 加载二进制流 byte[] image = getImageBytes(); Glide.with(this).load(image).into(imageView); // 加载Uri对象 Uri imageUri = getImageUri(); Glide.with(this).load(imageUri).into(imageView); Glide的使用: Glide.with(this) .placeholder(R.drawable.loading) //加载中站位图 .override(100, 100) //指定图片大小 .into(imageView); 文章来源: Android Glide使用

RecyclerView -- 给你一个不卡的滑动列表

拈花ヽ惹草 提交于 2019-12-02 17:59:53
https://www.jianshu.com/p/519bb23987ca 看完此文章 你就会学到什么... RecyclerView添加头部,尾部,或list列表中某位置添加view RecyclerView+SwipeRefreshLayout 实现上下拉刷新效果 分页加载数据 列表优化方案 利用Glide加载图片,滑动的时候按back键,App会crash蹦掉处理。 添加依赖 //recyclerview compile 'com.android.support:recyclerview-v7:25.1.1' //glide compile 'com.github.bumptech.glide:glide:3.7.0' //butterknife 注意需要在三个第三添加代码 //1 module gradle里面底部添加 compile 'com.jakewharton:butterknife:8.5.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' //2 module gradle 里面顶部添加 apply plugin: 'com.jakewharton.butterknife' //3 在project gradle里面添加 dependencies { classpath

RecyclerView -- 给你一个不卡的滑动列表

别来无恙 提交于 2019-12-02 17:34:45
https://www.jianshu.com/p/519bb23987ca 看完此文章 你就会学到什么... RecyclerView添加头部,尾部,或list列表中某位置添加view RecyclerView+SwipeRefreshLayout 实现上下拉刷新效果 分页加载数据 列表优化方案 利用Glide加载图片,滑动的时候按back键,App会crash蹦掉处理。 添加依赖 //recyclerview compile 'com.android.support:recyclerview-v7:25.1.1' //glide compile 'com.github.bumptech.glide:glide:3.7.0' //butterknife 注意需要在三个第三添加代码 //1 module gradle里面底部添加 compile 'com.jakewharton:butterknife:8.5.1' annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1' //2 module gradle 里面顶部添加 apply plugin: 'com.jakewharton.butterknife' //3 在project gradle里面添加 dependencies { classpath

Android RecyclerView利用Glide加载大量图片into(Target)导致OOM异常

女生的网名这么多〃 提交于 2019-12-02 16:46:30
学过android的人应该都知道Glide是一个无比强大的图片加载库,它内部已经提供了很好的缓存机制供我们选择,我们只需一个参数调用即可(DiskCacheStrategy()),而不必像Universal-Image-Loader类一样自己实现。正是因为它太好用了,导致我们很容易忽略一些重要的细节。Android的bitmap对象是最容易导致OOM的元凶之一,如果我们加载大量的bitmap对象,我们就不得不预防OOM。   我的原意是想将图片加载进RecyclerView里以StaggeredGridLayoutManager模式2列显示,实现瀑布流效果 mRecyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); 但是因为图片都是网络中获取到的,不知道其具体大小,因此一开始采用target来实现,具体如下: Glide.with(itemView.getContext()) .load(url) .asBitmap() .placeholder(R.drawable.error_pic) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(new SimpleTarget<Bitmap>

Glide——缓存分析整理

假如想象 提交于 2019-12-02 11:55:50
文章目录 LruCache 概述 原理 DiskLruCache 概述 Glide缓存概述 资源分类 缓存设计 Glide 缓存源码分析 1、生成key 2、创建缓存对象LruResourceCache 3、获取内存缓存中的图片 4、开启加载图片线程 5、获取磁盘缓存 6、写入磁盘 7、写入内存缓存 写入弱引用缓存 写入LruCache LruCache 概述 LruCache是Android 3.1所提供的一个缓存类,所以在Android中可以直接使用LruCache实现内存缓存。 主要算法原理是把最近使用的对象用强引用(即我们平常使用的对象引用方式)存储在 LinkedHashMap 中。当缓存满时,把最近最少使用的对象从内存中移除,并提供了get和put方法来完成缓存的获取和添加操作。 简单使用 int maxMemory = ( int ) ( Runtime . getRuntime ( ) . totalMemory ( ) / 1024 ) ; int cacheSize = maxMemory / 8 ; mMemoryCache = new LruCache < String , Bitmap > ( cacheSize ) { @Override protected int sizeOf ( String key , Bitmap value ) {

Glide缓存流程

怎甘沉沦 提交于 2019-12-01 08:10:56
本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/cPLkefpEb3w12-uoiqzTig 作者:连凌能 Android上图片加载的解决方案有多种,但是官方认可的是Glide。Glide提供简洁易用的api,整个框架也方便扩展,比如可以替换网络请求库,同时也提供了完备的缓存机制,应用层不需要自己去管理图片的缓存与获取,框架会分成内存缓存,文件缓存和远程缓存。本文不会从简单的使用着手,会把重点放在缓存机制的分析上。 一、综述 开始之前,关于Glide缓存请先思考几个问题: Glide有几级缓存? Glide内存缓存之间是什么关系? Glide本地文件IO和网络请求是一个线程吗?如果不是,怎么实现线程切换? Glide网络请求回来后数据直接返回给用户还是先存再返回? 加载开始入口从Engine.load()开始,先看下对这个方法的注释, 会先检查(Active Resources),如果有就直接返回,Active Resources没有被引用的资源会放入Memory Cache,如果Active Resources没有,会往下走。 检查Memory Cache中是否有需要的资源,如果有就返回,Memory Cache中没有就继续往下走。 检查当前在运行中的job中是否有改资源的下载