v关于使用Glide加载图片失败时显示自己特定的图片
Glide是Android加载图片的一个框架。
常用加载图片到imageView:Glide.with(this).load(url).into(ImageView imageview).
当加载失败时一般情侣下会默认调用Glide.error()方法,只需要在error方法中放一个默认图片即可,但当我们需要设置的默认图片是网络图片或者是手机本地图片时,这个方法行不通。
解决办法:Glide为我们提供了listener()方法,onException是图片加载异常回调,将它设置为false时会调用Glide默认的error方法,需要将它设置为true,然后调用我们自己设置的图片加载异常处理,onResourceReady是加载成功的处理。
1、首先给定一个你要获取图片路径
final String path = Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+"Anycctv"+File.separator+device.deviceUid+".jpg";//这是我自己的本地路径,换成你自己的
2、使用listener方法进行监听
      DrawableTypeRequest<Uri> request = Glide.with(this).load(uri);
        request.listener(new RequestListener<Uri, GlideDrawable>() {
            @Override
            public boolean onException(Exception e, Uri model, Target<GlideDrawable> target, boolean isFirstResource) {
                dismissLoading();
                //showToast("ex="+e.getMessage());
                Glide.with(UlifeplusApp.app).load(path)
                        .placeholder(mIvPicture.getDrawable())
                        .signature(new StringSignature(signature))
                        .crossFade(300)
                        .error(R.drawable.ic_fg_device_item)
                        .into(mIvPicture);
                return true;
            }
            @Override
            public boolean onResourceReady(GlideDrawable resource, Uri model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                dismissLoading();
                //showToast("succ");
                return false;
            }
        })
                .crossFade()
                .override(Utils.getRealSize(this).x, getResources().getDimensionPixelSize(R.dimen.w_480px))
                .skipMemoryCache(true)
                .diskCacheStrategy(DiskCacheStrategy.RESULT)
                .into(mIvPicture);
小礼物走一走,来简书关注我
v关于使用Glide加载图片失败时显示自己特定的图片的更多相关文章
- vue判断图片为空或者图片加载不成功时显示默认图片
		纯css解决方案: <img src="broken.png" alt=""> img { position: relative; } img:af ... 
- 在WebView中加载HTML页面时显示进度对话框的方法
		webView.setWebViewClient(new WebViewClient(){ ProgressDialog prDialog; @Overri ... 
- C++加载dll失败或显示乱码
		右键项目-属性-字符集-使用多字节字符集 
- Glide 加载图片
		//通过model获取到图片的url,将Url转换成bitmap对象: //设置不保存内存和硬盘缓存, 1 Glide.with(mContext).load(model.getVideoUrl()) ... 
- Android笔记之使用Glide加载网络图片、下载图片
		Glide简介 不想说太多,真的很方便:P)可以节省我不少时间 GitHub地址:https://github.com/bumptech/glide 加载网络图片到ImageView Glide.wi ... 
- 使用Glide加载Android图片
		一.概述 Glide是一个在Android端非常好的图片缓冲工具,总体上来说,他有以下优点 使用简单 自适应程度高 支持常见的图片格式,如jpg,png等 支持多种数据源,网络,本地,资源,Asset ... 
- glide 加载圆角图片
		aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABEIAAAD3CAIAAACW6Gb7AAAgAElEQVR4nOy9e1QbZf74//zO4XvOYz 
- Android中的Glide加载图片
		注意:在Android Studio的项目的build.gradle中添加: compile 'com.github.bumptech.glide:glide:3.6.1' 然后同步一下 目录: 使用 ... 
- Android使用Glide加载https链接的图片不显示的原因
		平时我们使用Glide加载http网址的图片的时候,图片可以正常加载出来,但是如果服务器端加上了安全认证,当加载自签名的https图片的时候就会报如下错误(证书路径验证异常). 我们如果不修改Glid ... 
随机推荐
- PHP——最新号码归属地数据库
			前言 最近在忙的一个项目,为了数据安全,不能够使用任何第三方的接口~ 号码库 | https://github.com/wangyang0210/Phone-Number-Range 代码 其实就是一 ... 
- Mac上django 报错 [Errno 13] Permission denied: '/static'
			将setting文件中的 改成: 
- 大小端示例-arm c51
			大小端系列文章https://blog.csdn.net/liming0931/article/details/100016425 MDK(Keil5,STM32F407)C语言: #include ... 
- fastjson ping外带信息poc
			public class Exploit { public Exploit(){ String base_url = ".egpkd5.dnslog.cn"; //你的dnslog ... 
- C++ error C2015: too many characters in constant
			错误原因:字符常量中的字符太多了. 错误分析: 单引号表示字符型常量. 一般的,单引号中必须有,也只能有一个字符(使用转义符时,转义符所表示的字符当作一个字符看待),如果单引号中的字符数多于4个,就会 ... 
- 面对对大体量矢量数据ArcGIS的优化方法
			大数据量矢量数据的可视化需要解决的问题,就是如何在可接受的短时间内,能展示大数据量的矢量地图. 解决方案一:采用预先渲染的切片进行展示 切片是预先渲染的数据集,也是响应最快的展示方式.目前ArcGIS ... 
- 原创:从海量数据中查找出前k个最小或最大值的算法(java)
			现在有这么一道题目:要求从多个的数据中查找出前K个最小或最大值 分析:有多种方案可以实现.一.最容易想到的是先对数据快速排序,然后输出前k个数字. 二.先定义容量为k的数组,从源数据中取出前k个填 ... 
- ICEM-管肋
			原视频下载地址:https://yunpan.cn/cMgkmd7u9ZPdC 访问密码 8a73 
- GO标准库flag
			Go语言内置的flag包实现了命令行参数的解析. os.Args os.Args是一个[]string类型. 获取命令参数示例: func main() { if len(os.Args) > ... 
- 设置虚拟机ip地址
			当我们在linux中输入命令ifconfig来查找ip地址的时候,可能会出现只有ipv6,而没有inet的情况,这时需要自己设定,有两种方式可供选择: 1,命令 ifconfig 设备名(如eth0) ... 
