glide图片加载01

特点

1.使用简单仅仅需要一行代码 

Glide.with(this).load("请求路径").into(imageView);

2 可配置度高,自适应性高。

3 支持常见的图片格式

4 支持多种数据源

5  高效的缓存支持memory 与disk图片缓存,默认bitmap格式采用RGB_565内存

6 生命周期集成,根据activity/fragment生命周期自动管理请求

7高效处理bitmap,使用bitmap pool使bitmap复用,主动调用recycle回收需要回收的bitmap


上下文处理

with(Context context). 使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制。

with(Activity activity).使用Activity作为上下文,Glide的请求会受到Activity生命周期控制。

with(FragmentActivity activity).Glide的请求会受到FragmentActivity生命周期控制。

with(android.app.Fragment fragment).Glide的请求会受到Fragment 生命周期控制。

with(android.support.v4.app.Fragment fragment).Glide的请求会受到Fragment生命周期控制。

资源处理

Glide基本可以load任何可以拿到的媒体资源,如:

loadSD卡资源:load("file://"+ Environment.getExternalStorageDirectory().getPath()+"/test.jpg")

loadassets资源:load("file:///android_asset/f003.gif")

loadraw资源:load("android.resource://com.frank.glide/raw/raw_1")或load("android.resource://com.frank.glide/raw/"+R.raw.raw_1)

loaddrawable资源:load("android.resource://com.frank.glide/drawable/news")或load("android.resource://com.frank.glide/drawable/"+R.drawable.news)

loadContentProvider资源:load("content://media/external/images/media/139469")

loadhttp资源:load("http://img.my.csdn.net/uploads/201508/05/1438760757_3588.jpg")

loadhttps资源:load("https://img.alicdn.com/tps/TB1uyhoMpXXXXcLXVXXXXXXXXXX-476-538.jpg_240x5000q50.jpg_.webp")

load不限于String类型,还可以:

load(Uri uri),load(File file),load(Integer resourceId),load(URL url),load(byte[] model)

load(T model)  loadFromMediaStore(Uri uri)

重要功能

1  禁止内存缓存 skipMemoryCache(true)

2 清除内存缓存Glide.get(this).clearMemory();

3 禁止磁盘缓存 diskCacheStrategy()

4 清除磁盘缓存Glide.get(this).clearDiskCache();

5 获取缓存大小new GetDiskCacheSizeTask(textView).execute(new File(getCacheDir(), DiskCache.Factory.DEFAULT_DISK_CACHE_DIR));//  /data/data/cn.xxx.xxx(当前包)/cache 250大小

6 指定资源的优先加载顺序.priority(Priority.LOW)

IMMEDIATE,HIGH,NORMAL,LOW,priority,

7 先显示缩略图,再显示原图.thumbnail(0.1f)

8 对图片进行裁剪、模糊、滤镜等处理

//圆形裁剪.bitmapTransform(new CropCircleTransformation(this))

//圆角处理.bitmapTransform(new RoundedCornersTransformation(this,30,0,RoundedCornersTransformation.CornerType.ALL))

.bitmapTransform(new GrayscaleTransformation(this))//灰度处理

9 对请求状态进行监听

实现RequestListener 接口

参考http://blog.csdn.net/shangmingchao/article/details/51125554

10 对资源的下载进度进行监听

参考http://blog.csdn.net/shangmingchao/article/details/51125554


对于GlideModule的使用

http://blog.csdn.net/shangmingchao/article/details/51026742


具体使用

添加依赖

compile'com.android.support:support-v4:23.3.0'

清单文件权限




具体使用

在listview中的使用

Glide.with(mContext)

.load(url)

.placeholder(R.mipmap.ic_launcher)//占位图

.error(R.mipmap.ic_launcher)//出错的占位图

.override(width,height)//图片显示的分辨率 ,像素值   可以转化为DP再设置

.animate(R.anim.glide_anim) //动画

.error(R.mipmap.ic_launcher)//出错占位符

.centerCrop()

.fitCenter()

.into(holder.image);


CenterCrop()会缩放图片让图片充满整个ImageView的边框,然后裁掉超出的部分。ImageVIew会被完全填充满,但是图片可能不能完全显示出。

fitCenter()会缩放图片让两边都相等或小于ImageView的所需求的边框。图片会被完整显示,可能不能完全填充整个ImageView。

加载git图片 .asGif()如果gifUrl是一个gif,没有异常发生。但如果gifUrl不是一个Gif,即使是一个完好的图片(非Gif),Glide也会加载失败。.error()回调方法会被调用,并加载错误占位图。

如果你的app需要显示一组网络URL,可能包括普通的图片或者Gif。在一些情况下,你可能并不在意是否要播放完整的Gif。如果你只是想要显示Gif的第一帧,当URl指向的的确是Gif,你可以调用asBitmap()将其作为常规图片显示。


混淆规则

-keeppublicclass*implementscom.bumptech.glide.module.GlideModule-keeppublicenumcom.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {**[] $VALUES;public*;

}







你可能感兴趣的:(glide图片加载01)