Получение изображений из галереи - не все "существуют"? - PullRequest
3 голосов
/ 24 сентября 2010

Я просто пытаюсь получить путь к изображению, которое выбирает пользователь, и затем преобразовать его в растровое изображение. Проблема в том, что только некоторые изображения в галерее работают при выборе (под «работой» я подразумеваю, что это файл, который существует), в то время как другие утверждают, что файл не существует (даже если изображение отображается в галерее?). Еще более странным является то, что это кажется непоследовательным: изображение, которое когда-то считалось «существующим», теперь утверждает, что оно не существует. Мой код ниже:

----- Намерение -----

Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
startActivityForResult(intent, GALLERY_ACTIVITY);

----- onActivityForResult -----

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);

Любые идеи по этому вопросу будут высоко оценены, спасибо!

Мт.

1 Ответ

0 голосов
/ 08 января 2012

Некоторые изображения в галерее были загружены из внешних источников (таких как Picasa), поэтому не были сохранены локально, что привело к ошибке чтения локального пути файла. Вы можете различить их, прочитав ваше значение URI. Я не мог найти решение этой проблемы, возможно, эта ошибка http://code.google.com/p/android/issues/detail?id=21234 может выманить решение в ближайшее время.

...