Glide 判断图片是否存在 以及获得宽高
来源:互联网 发布:淘宝卖包包的好店 编辑:程序博客网 时间:2024/06/17 23:57
Glide作为一个网络记载框架,功能强大自然不用说。前段时间产品要求获得图片之后,按照屏幕的宽度去计算高度。而后台告诉我们,只给Url 不保证图片真实存在。扎心了,老铁。
我一阵百度,一阵谷歌。没有找到(谁找得到了给我说一下,谢谢)。
没办法,我想了一下,转换思路,先将图片转成bitmap,如果bitmap不为空的话,是不是就可以判断图片真实存在了。按照这个思路。我找到了Glide一个东西 RequestListener接口。可以打开看看。有两个需要实现的方法:onException和onResourceReady
我猜的:第一个方法就是发生异常进入的,第二个方法中的bitmap 就是真实存在的。通过设置发现确实如此。` /**
* TODO:上线前记得修改
*/
public static void loadMessageImage(Context context, int defaultId, String resourceId, final ImageView imageView, RequestListener listener) {
Glide.with(context)
.load(BASE_URL_IMG + resourceId).asBitmap()
.placeholder(defaultId)
.listener(listener)
.into(imageView);
Log.e(“jxx245”, BASE_URL_IMG + resourceId);
}`上面这个是封装的方法下面是应用的
GlideManager.loadMessageImage(context, R.drawable.shape_white_xian, "/msg/" + entity.getId() + "/title.png", holder.imageIv, new RequestListener<String, Bitmap>() { @Override public boolean onException(Exception e, String model, Target<Bitmap> target, boolean isFirstResource) { holder.imageIv.setVisibility(View.GONE); return false; } @Override public boolean onResourceReady(Bitmap resource, String model, Target<Bitmap> target, boolean isFromMemoryCache, boolean isFirstResource) { if (resource!=null){ holder.imageIv.setVisibility(View.VISIBLE); LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) holder.imageIv.getLayoutParams(); float resource_width = (float) resource.getWidth(); float resource_height = (float) resource.getHeight(); params.width = imageviewWidth; float height = (imageviewWidth / resource_width) * resource_height; params.height = (int)height; params.setMargins(15, 15, 15, 0); holder.imageIv.setLayoutParams(params); holder.imageIv.setImageBitmap(resource); }else {// holder.imageIv.setVisibility(View.GONE); LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) holder.imageIv.getLayoutParams(); float resource_width = (float) resource.getWidth(); float resource_height = (float) resource.getHeight(); params.width = imageviewWidth; float height = 1; params.height = (int)height;// params.setMargins(0, 0, 15, 0); holder.imageIv.setLayoutParams(params); } return false; } });
大功告成。
- Glide 判断图片是否存在 以及获得宽高
- Glide获取图片宽高以及setImageDrawable和setImageBitmap区别
- 判断网络图片是否存在
- Js判断图片是否存在
- Js判断图片是否存在
- php判断图片是否存在
- 判断图片文件是否存在
- 判断网络图片是否存在
- js判断图片是否存在
- 判断远程图片是否存在
- 判断快捷方式是否存在以及创建
- python 判断文件是否存在以及
- ASP判断远程图片是否存在函数
- 用Javascript判断图片是否在存在
- js判断远程图片是否存在
- 判断网络上的图片是否存在
- 怎样判断远程图片是否存在?
- 怎样判断远程图片是否存在?
- UML常用图的几种关系的总结
- 深谈多并发计数器CountDownLatch(一)
- 数学笔记——导数5(指数函数和对数函数的导数)
- 探究多个装饰器执行顺序
- Android蓝牙相关—蓝牙打印
- Glide 判断图片是否存在 以及获得宽高
- java入门篇
- Dev c++调试时停止工作解决方法
- 抓firefox上https请求
- Lua_协同程序_011
- angularjs+生成随机数猜数字大小
- C++连接Mysql数据库 & 使用预处理读写BLOB
- 自己实现的qgraphicsitem
- [tensorflow image ops]Image解码函数