Android 从图库获取图像-并非全部”;存在;?

Android 从图库获取图像-并非全部”;存在;?,android,image,android-intent,gallery,filenotfoundexception,Android,Image,Android Intent,Gallery,Filenotfoundexception,我只是尝试获取用户选择的图像路径,然后将其转换为位图。问题是,只有库中的一些图像在选中时有效(我说的“工作”是指它们是存在的文件),而其他图像则声称该文件不存在(即使图像显示在库中?)。更奇怪的是,这似乎并不一致,一个曾经被认为“存在”的图像现在却声称不存在。我的代码如下: -----意图----- -----onActivityForResult----- Uri=intent.getData(); 字符串[]proj={MediaStore.Images.Media.DATA}; Curso

我只是尝试获取用户选择的图像路径,然后将其转换为位图。问题是,只有库中的一些图像在选中时有效(我说的“工作”是指它们是存在的文件),而其他图像则声称该文件不存在(即使图像显示在库中?)。更奇怪的是,这似乎并不一致,一个曾经被认为“存在”的图像现在却声称不存在。我的代码如下:

-----意图-----

-----onActivityForResult-----

Uri=intent.getData();
字符串[]proj={MediaStore.Images.Media.DATA};
Cursor Cursor=managedQuery(uri,proj,null,null,null);
int column_index=cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
BitmapFactory.Options opts=新的BitmapFactory.Options()
opts.inSampleSize=2
位图b=BitmapFactory.decodeFile(cursor.getString(column_index),opts);
如果您对此有任何想法,我们将不胜感激,谢谢


Matt。

库中的某些图像是从外部源(如Picasa)加载的,因此未在本地存储,导致本地文件路径读取失败。您可以通过读取uri值来区分它们。我找不到解决这个问题的方法,也许这个错误很快就能找到解决方案

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, GALLERY_ACTIVITY);
Uri uri = intent.getData();
String [] proj={MediaStore.Images.Media.DATA};
Cursor cursor = managedQuery(uri,proj,null,null,null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();

BitmapFactory.Options opts = new BitmapFactory.Options();<br/>
opts.inSampleSize = 2;<br/>
Bitmap b = BitmapFactory.decodeFile(cursor.getString(column_index),opts);