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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:最近热点之 “华为”,别点开
下一篇:Android webview设置背景透明,去掉白色

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月28日 07时37分00秒