1
2
3
4
|
Intent intent = new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setType( "image/*" ); startActivityForResult(intent, RESULT_LOAD_IMAGE); |
当我们选择一个图片以后,在onActivityResult中,我们用一下代码获取选择的图片路径:
1
2
|
Uri uri = data.getData(); String path = uri.getPath(); |
在这段代码中,我测试发现,在我的Nexus 4、魅族、模拟器上测试没有什么问题,但是在红米,华为等手机上测试,发现得到的path这个路径值,不是我们图片在手机上的路径,暂时还不明白是个什么值,如果根据这个path去获取图片会得到一个null值,不知为什么???
解决方案:在onActivityResult中,按照如下的方式,就可以在所有的手机上使用,不会出问题,亲测:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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 ; } |
下载说明
☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,
☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!
☉唯一站长QQ:1004003180 [人格担保-本站注重诚信!]
☉购买建议E-mail:1004003180@qq.com 源码收购 E-mail:1004003180@qq.com
☉本站文件解压密码 【文章内都自带解压密码,每个密码不同!】