Android glide加载本地图片遇到的问题
发布日期:2021-06-28 19:09:26
浏览次数:2
分类:技术文章
本文共 2467 字,大约阅读时间需要 8 分钟。
问题:加载本地图片一直加载不出来,也不知道是哪里出现的问题,以为是图片命名的方式,试了也没用,后面又看了glide的源码发现glide加载本地图片也是用的那样的方法,后面问了下上家同事,郭佬,才发现一开始的问题便是图片路径的问题。
步骤:
首先检查图片路径(不要写绝对路径!!!):
我是将一个ImageView通过模糊度生成一个图片保存到SD卡中,然后再在其他的地方进行调用展示
(一):图片生成并保存
public static void viewSaveToImage(Context context, View view) { view.setDrawingCacheEnabled(true); view.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH); view.setDrawingCacheBackgroundColor(Color.WHITE); // 把一个View转换成图片 Bitmap cachebmp = loadBitmapFromView(view); FileOutputStream fos; String imagePath = ""; try { // 判断手机设备是否有SD卡 boolean isHasSDCard = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); if (isHasSDCard) { // SD卡根目录 File sdRoot = Environment.getExternalStorageDirectory(); String fileName = getSDPath() +"/" + Calendar.getInstance().getTimeInMillis()+".jpg";//以name存在目录中 File file = new File(fileName);// File file = new File(sdRoot, "wuaisport/" + Calendar.getInstance().getTimeInMillis() + ".jpg"); Log.e(TAG, "viewSaveToImage filePath : " + file.getPath()); SPUtils.getInstance().put(Constants.SKIN_CONFIG_PIC_PATH, file.getAbsolutePath()); //保存图片后发送广播通知更新数据库 Uri uri = Uri.fromFile(file); context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri)); fos = new FileOutputStream(file); imagePath = file.getAbsolutePath(); } else throw new Exception("创建文件失败!"); cachebmp.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); } LogUtil.e("imagePath=" + imagePath); view.destroyDrawingCache(); }
获取SD卡的路径是关键:
public static String getSDPath() { File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED);//判断sd卡是否存在 if (sdCardExist) { sdDir = Environment.getExternalStorageDirectory();//获取跟目录 } return sdDir.toString(); }
生成的图片路径:imagePath=/storage/emulated/0/1556246754134.jpg
(二)在其他地方进行展示(使用glide):
Glide.with(context).load(Uri.fromFile(new File(absPicPath))).into(ivCustomeBg);
glide加载本地SD卡图片并进行显示。
转载地址:https://blog.csdn.net/xudailong_blog/article/details/89533623 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月28日 07时37分00秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
【重磅推出】性能提升100倍的性能测试监控优化方法
2019-04-29
Spring cloud微服务框架简介
2019-04-29
架构设计 - 如何解除依赖
2019-04-29
tomcat内存优化及问题排查
2019-04-29
生产环境tomcat参数设置建议
2019-04-29
常用加密算法概述、比较及使用场景说明
2019-04-29
【实用】Redis各种存储结构使用场景
2019-04-29
Spring boot参数设置
2019-04-29
【实用】Redis高级功能
2019-04-29
Springboot快速上手
2019-04-29
SaaS开放平台安全鉴权方式: Oauth鉴权机制及接入说明
2019-04-29
实用性能测试工具介绍
2019-04-29
性能优化案例之:如何将TPS从60提升到2000?
2019-04-29
lua并发限流代码
2019-04-29
RabbitMQ教程,快速上手
2019-04-29
RabbitMQ和kafka从几个角度简单的对比
2019-04-29
swagger + springmvc配置使用文档
2019-04-29
服务限流demo(lua脚本)
2019-04-29
Redis连接池设置及测试结果
2019-04-29
DevOps八荣八耻了解下,哈哈~
2019-04-29