#android #image
#Android #изображение
Вопрос:
Привет, я выбираю изображение из галереи в эмуляторе. Когда я нажимаю кнопку обзора и выбираю изображение, я написал код для получения пути к изображению. Но он не отображается. Когда я использую журнал для печати пути в logcat, отображается ошибка. Пожалуйста, помогите мне отобразить путь к изображению. Это мой код.
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == SELECT_PICTURE) {
Uri selectedImageUri = data.getData();
selectedImagePath = getPath(selectedImageUri);
logo_path.setText(selectedImagePath);
}
}
}
public String getPath(Uri uri) {
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(uri, projection, null, null, null);
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
Комментарии:
1. Зарин, что именно ты получаешь?
2. @ Kishan В поле ничего не отображается, и ошибок тоже нет.
3. какая ошибка отображается в журнале?
Ответ №1:
Попробуйте это.
public String getImagePathFromURI(Uri uri) {
String imgpath = "";
Cursor c= getContentResolver().query(uri, null, null, null, null);
if (c == null) {
imgpath= uri.getPath(); // Getting path from url itself
} else {
c.moveToFirst();
int id = c.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
result = c.getString(id);
c.close(); // Close curson.
}
return imgpath; // original image path
}
Ответ №2:
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
@SuppressWarnings("deprecation")
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
if (cursor == null)
return null;
int column_index = cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}
и в вашем onActivityResult
использовании
String path = getRealPathFromURI(uri);
Bitmap bmp = BitmapFactory.decodeFile(path);