---------------------------------------------------------------Bitmap-----------------------------------------------------
1.图片加载框架:Picasso、Glide、Frecso
2.三者的区别?
Picasso:默认是 ARGB_8888,不可以加载 Gif 图片,with()中只能写上下文对象
Glide:默认是 RGB_565,可以加载 Gif 图片,还可以加载 raw 与 assets 文件中的图片
,支持网络图片、本地图片、二进制流还有 url,并且和 Ac"vity、fragment 的生命周期
一 样,Glide 加载图片的质量比 Picasso 要差
Frecso:使用的时候必须在 setContentView(view)之前做初始化
优点:1).使用方便,学习成本低
2).不用担心 OOM
3).加载时自带淡入效果
4).可以在布局中直接设置加载动画,代码量比较少
缺点:1).使用 fresco 时,必须使用它自定义的控件
2).方法太多
Glide 的方法:
1、with()中可以写上下文对象,Ac"vity,Fragment 这些参数,如果传入的是 Ac"vity 或
者 Fragment 的实例,那么当这个 Ac"vity 或 Fragment 被销毁的时候,图片加载也会
停 止。 如果传入的是 Applica"onContext,那么只有当应用程序被杀掉的时候,图片
加 载才会停止。
Load()中可以写本地图片的路径,应用资源、二进制流、uri 对象,url 对象
加载本地图片
File 0le = getImagePath();
Glide.with(this).load(0le).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);
3.缓存策略?
Glide:根据 imageview 的大小来缓存(同一张图片,大小不同,都会被缓存),是用
H9pUrlConnec"on 来下载图片的
Picasso:缓存的是全尺寸的(无论图片大小是否相同,只缓存一张)