博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android glide加载本地图片遇到的问题
阅读量:1826 次
发布时间:2019-04-25

本文共 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卡图片并进行显示。

转载地址:http://cbxkf.baihongyu.com/

你可能感兴趣的文章
SqlServer 将纯数字的时间转换为DateTime
查看>>
实现厘米级、低功耗精确定位,Kolmostar获元实资本领投1000万美元融资 ...
查看>>
在家怎么用手机连接到电视?
查看>>
好程序员web前端教程分享js文件引用编码方式
查看>>
阿里云华北1235、华东1、华东2和华南1分别对应哪些城市?地域节点物理数据中心在哪? ...
查看>>
阿里云杨敬宇:5G时代,边缘计算将发挥更大价值 ...
查看>>
### avoid read-on-write
查看>>
HBase+Spark技术双周刊 第四期
查看>>
突然上万片晶圆被污染,台积电损失惨重
查看>>
Centos7.6下安装Python3.7
查看>>
Quick BI取数模型深度剖析
查看>>
王传福:电动汽车开始由政策与市场双轮驱动|电动车百人会2019 ...
查看>>
直播平台建设中必不可少的防盗机制,直播间搭建的安全防护 ...
查看>>
【直播预告】云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第19讲):Java Spring Cloud微服务...
查看>>
SAP中smartform中的图片如何在不同服务器之间传递 ...
查看>>
Android多线程源码详解一:handler、looper、message、messageQueue ...
查看>>
### how to write file faster
查看>>
未来几年,谁能拯救手机拍照功能?
查看>>
安装与配置Flutter开发环境
查看>>
读刘润的《新零售》
查看>>