android红米等关于读取本地文件夹图片获取路径的问题的解决
2015-02-04 11:52
567 查看
在android开发中,有从本地文件夹中读取图片的功能,使用一下代码打开图片选择列表:
在这段代码中,我测试发现,在我的Nexus 4、魅族、模拟器上测试没有什么问题,但是在红米,华为等手机上测试,发现得到的path这个路径值,不是我们图片在手机上的路径,暂时还不明白是个什么值,如果根据这个path去获取图片会得到一个null值,不知为什么???
解决方案:在onActivityResult中,按照如下的方式,就可以在所有的手机上使用,不会出问题,亲测:
这个path就是我们要的图片路径,我们就可以拿它做我们想做的事!!!
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; }
这个path就是我们要的图片路径,我们就可以拿它做我们想做的事!!!
相关文章推荐
- android红米等关于读取本地文件夹图片获取路径的问题的解决
- android红米等关于读取本地文件夹图片获取路径的问题的解决
- android获取项目下的一张图片的绝对路径问题以及解决方法
- android获取项目下的一张图片的绝对路径问题以及解决方法
- 获取用户上传的图片的本地路径实现方法,解决fakepath路径问题
- IE8 用滤镜实现上传预览图片,解决C:\fakepath\*.jpg问题,获取本地路径
- android拍照后图片路径的获取(解决不同手机存在拍照后旋转的问题)
- Android基于红米系列手机读取本地图片路径失败的解决方案
- android选择本地相册图片路径的问题的解决
- android按路径读取相册图片 完美解决Bitmap内存溢出问题
- 关于android gridview 加载大量图片的OOM问题解决方案
- android 获取网络数据,回传到本地用TextView显示乱码问题解决方法
- 关于 android 加载 res 图片 out of memory 问题 解决 同样适用于 sd卡图片
- 解决Android获取网络图片过大的问题
- Android 异步获取网络图片并处理导致内存溢出问题解决方法
- android异步获取图片并且本地存储的后续问题
- Android读取本地图片,图片太大导致OOM问题。
- IE8上传文件时获取文件本地路径问题(C:\fakepath\……)的解决办法
- ANDROID解决音乐播放器无法获取专辑图片问题
- Android 异步获取网络图片并处理导致内存溢出问题解决方法