Glide 图片加载库的坑
来源:互联网 发布:微信开发框架 php 编辑:程序博客网 时间:2024/06/10 15:58
1:CircleImageView 使用Glide 加载时,设置placeholder,导致图片不显示
// 解决:加上.dontAnimate()
.placeholder(R.mipmap.mine_placehold)
.dontAnimate()
2:使用Glide 加载的图片,获取bitmap转为为string是报错
java.lang.ClassCastException: com.bumptech.glide.request.target.SquaringDrawable cannot be cast to
android.graphics.drawable.BitmapDrawable
、
// 转化代码如下
// 获取imageview的图片,并且转化为可传递的string
public static String GetStringByImageView(ImageView imageView){
// 从ImageView得到Bitmap对象
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
// 把Bitmap转码成字符串
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 50,baos);
String imageBase64 = new String (Base64.encode(baos.toByteArray(), 0));
return imageBase64;
}
、
// 错误分析 :
通过Glide加载的image--
imageView.getDrawable() 获取的Drawable 类型不是BitmapDrawable
而是 GlideBitmapDrawable
因此类型错误导致
// 解决:加上.asBitmap()
.load(imageURLString)
.asBitmap()
3:使用Glide 加载图片,经常报错 You cannot start a load for a destroyed activity
// 解决:为了一劳永逸我直接获取了application的context用来加载,一劳永逸
// 如下(KapApplication 是自定义的:public class KapApplication extends Application)
// Glide 帮助类
public class KapGlideHelper {
/**
* 用Application context 防止出现
* */
// 创建gradle
public static RequestManager CreatedGlide(){
return Glide.with(KapApplication.getContext());
}
// 取消gradle请求
public static void PaauseRequests(){
Glide.with(KapApplication.getContext()).pauseRequests();
}
}
// 使用:
KapGlideHelper.CreatedGlide().load(imageURLString)
.asBitmap()
.placeholder(R.mipmap.mine_placehold)
.into(imageView);
// 缺点是:无法以activity为单位控制网络请求~~
4 .作为GalleryFinal多选框架的图片加载引擎是遇到的一个小问题
.skipMemoryCache(true)
//.centerCrop()
.into(new ImageViewTarget<GlideDrawable>(imageView) {
@Override
protected void setResource(GlideDrawable resource) {
imageView.setImageDrawable(resource);
}
// adapter_item_tag_key 仅是ids.xml的一个标识符
@Override
public void setRequest(Request request) {
imageView.setTag(R.id.adapter_item_tag_key,request);
}
@Override
public Request getRequest() {
return (Request) imageView.getTag(R.id.adapter_item_tag_key);
}
});
、
// adapter_item_tag_key这个仅仅是一个标识符而已
// 添加于自己的ids.xml中即可
<resources>
<item name="adapter_item_tag_key" type="id"/>
</resources>
链接:http://www.jianshu.com/p/4a206275137b
來源:简书
// 解决:加上.dontAnimate()
.placeholder(R.mipmap.mine_placehold)
.dontAnimate()
2:使用Glide 加载的图片,获取bitmap转为为string是报错
java.lang.ClassCastException: com.bumptech.glide.request.target.SquaringDrawable cannot be cast to
android.graphics.drawable.BitmapDrawable
、
// 转化代码如下
// 获取imageview的图片,并且转化为可传递的string
public static String GetStringByImageView(ImageView imageView){
// 从ImageView得到Bitmap对象
Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
// 把Bitmap转码成字符串
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 50,baos);
String imageBase64 = new String (Base64.encode(baos.toByteArray(), 0));
return imageBase64;
}
、
// 错误分析 :
通过Glide加载的image--
imageView.getDrawable() 获取的Drawable 类型不是BitmapDrawable
而是 GlideBitmapDrawable
因此类型错误导致
// 解决:加上.asBitmap()
.load(imageURLString)
.asBitmap()
3:使用Glide 加载图片,经常报错 You cannot start a load for a destroyed activity
// 解决:为了一劳永逸我直接获取了application的context用来加载,一劳永逸
// 如下(KapApplication 是自定义的:public class KapApplication extends Application)
// Glide 帮助类
public class KapGlideHelper {
/**
* 用Application context 防止出现
* */
// 创建gradle
public static RequestManager CreatedGlide(){
return Glide.with(KapApplication.getContext());
}
// 取消gradle请求
public static void PaauseRequests(){
Glide.with(KapApplication.getContext()).pauseRequests();
}
}
// 使用:
KapGlideHelper.CreatedGlide().load(imageURLString)
.asBitmap()
.placeholder(R.mipmap.mine_placehold)
.into(imageView);
// 缺点是:无法以activity为单位控制网络请求~~
4 .作为GalleryFinal多选框架的图片加载引擎是遇到的一个小问题
.skipMemoryCache(true)
//.centerCrop()
.into(new ImageViewTarget<GlideDrawable>(imageView) {
@Override
protected void setResource(GlideDrawable resource) {
imageView.setImageDrawable(resource);
}
// adapter_item_tag_key 仅是ids.xml的一个标识符
@Override
public void setRequest(Request request) {
imageView.setTag(R.id.adapter_item_tag_key,request);
}
@Override
public Request getRequest() {
return (Request) imageView.getTag(R.id.adapter_item_tag_key);
}
});
、
// adapter_item_tag_key这个仅仅是一个标识符而已
// 添加于自己的ids.xml中即可
<resources>
<item name="adapter_item_tag_key" type="id"/>
</resources>
链接:http://www.jianshu.com/p/4a206275137b
來源:简书
阅读全文
1 0
- Glide 图片加载库的坑
- 图片加载库Glide
- 图片加载库Glide
- 图片加载库Glide
- Glide库加载图片
- Glide 图片加载库:
- 图片加载库-Glide
- Glide的图片加载库的使用
- Glide图片加载库的使用
- Glide图片加载库的使用
- Glide图片加载库的使用
- Google推荐的图片加载库Glide
- Android Glide图片加载库的使用
- Android Glide图片加载库的使用
- Glide,Google推荐的图片加载库
- Android Glide图片加载库的使用
- Glide图片加载库的使用
- Android Glide图片加载库的使用
- 删除指定目录下指定的文件(非并发)
- Java 下拉框多选 、富文本 【只列出关键部分】
- Struts2的自定义拦截器
- 使用TabLayout实现单行的flowlayout(标签流式布局)
- RCNN学习笔记(0):rcnn简介
- Glide 图片加载库的坑
- iOS 库管理工具 CocoaPods
- 高新区房
- C#-struct实例字段的内存布局(Layout)和大小(Size)
- 利用systemd按需激Docker容器
- Android 项目 SQLite数据库版本升级
- mybatis入门
- win 7部分便笺的元数据已被损坏
- 关于ArcGis发布切片服务切片失败,切片率为0