android红米等关于读取本地文件夹图片获取路径的问题的解决
Android 解决 获取 关于 图片 路径 读取 本地
2023-09-11 14:20:27 时间
在Android开发中,有从本地文件夹中读取图片的功能,使用一下代码打开图片选择列表:
Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, RESULT_LOAD_IMAGE);
当我们选择一个图片以后,在onActivityResult中,我们用一下代码获取选择的图片路径:
Uri uri = data.getData(); String path = uri.getPath();
在这段代码中,我测试发现,在我的Nexus 4、魅族、模拟器上测试没有什么问题,但是在红米,华为等手机上测试,发现得到的path这个路径值,不是我们图片在手机上的路径,暂时还不明白是个什么值,如果根据这个path去获取图片会得到一个null值,不知为什么???
解决方案:在onActivityResult中,按照如下的方式,就可以在所有的手机上使用,不会出问题,亲测:
if (data != null) { Uri uri = data.getData(); if (!TextUtils.isEmpty(uri.getAuthority())) { Cursor cursor = getContentResolver().query(uri, new String[] { MediaStore.Images.Media.DATA },null, null, null); if (null == cursor) { Toast.makeText(this, "图片没找到", Toast.LENGTH_SHORT).show(); return; } cursor.moveToFirst(); path = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DATA)); cursor.close(); } else { path = uri.getPath(); } }else{ Toast.makeText(this, "图片没找到", Toast.LENGTH_SHORT).show(); return; }
相关文章
- 解决Android加固多进程ptrace反调试的思路整理
- Android 开源项目android-open-project解析之(二) GridView,ImageView,ProgressBar,TextView
- Android分享功能的一点总结
- Android studio 2.0--android增量更新的那些事
- 升级后开机就提示“android.process.acore”停止执行 --分析 解决方式
- Android菜单详解(一)——理解android中的Menu
- Android USB转串口开发(hoho.android.usbserial串口库)
- Android开发工程师文集-提示框,菜单,数据存储,组件篇
- 解决Android NDK 报jxxx编译找不到
- Android ANR全解析&华为AGC性能管理解决ANR案例集
- Android两级嵌套ListView滑动问题的解决
- 【VLC-Android】Mac下编译vlc-android
- 【VLC-Android】vlc-android简例
- Android ActionBar详解(一):ActionBar概述及其创建
- Style在Android中的继承关系
- 解决Android SDK Manager下载问题和android studio每次启动都要在fetching Android sdk compoment information
- Android 之使用LocalBroadcastManager解决BroadcastReceiver安全问题
- Android API Guides---RenderScript
- Android学习笔记之:android更新ui的几种经常用法
- VS2015 android 设计器不能可视化问题解决。
- Android使用TextView,设置onClick属性无效解决的方法
- Android Widget 小工具(两) 使用configure
- Android 自定义ListView
- 【深度好文】Android界面性能调优手册