Когда я снимаю изображение с помощью камеры, оно работает нормально, и я получаю путь к изображению для сохранения в базе данных SQLite и могу получить путь для отображения требуемого изображения. Но когда я выбираю изображение из галереи, я не получаю правильный путь, который мне нужно сохранить в базе данных для дальнейшего извлечения. Я не получаю изображение, потому что путь неверен, когда я сохраняю путь в базе данных. Итак, мой вопрос: как я могу получить правильный абсолютный путь к изображению галереи?
@RequiresApi(api = Build.VERSION_CODES.N)
private void onCaptureImageResult(Intent data) {
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, bytes);
File destination = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis() + ".jpg");
FileOutputStream fo;
try {
destination.createNewFile();
fo = new FileOutputStream(destination);
fo.write(bytes.toByteArray());
fo.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Bitmap bm = BitmapFactory.decodeFile(destination.getAbsolutePath());
ivImage.setImageBitmap(bm);
showImagepathET.setText(destination.getAbsolutePath());// This path will save in database
}
@SuppressWarnings("deprecation")
private void onSelectFromGalleryResult(Intent data) {
Bitmap bm=null;
if (data != null) {
try {
bm = MediaStore.Images.Media.getBitmap(getApplicationContext().getContentResolver(), data.getData());
} catch (IOException e) {
e.printStackTrace();
}
}
File destination = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis() + ".jpg");
showImagepathET.setText(destination.getAbsolutePath());// This path will save in database
ivImage.setImageBitmap(bm);
}
Здесь я получаю правильное изображение для показа в ImageView ivImage как при съемке изображения камерой, так и галереей. Но я неправильно понимаю путь, когда выбираю изображение из галереи (отлично работает, когда я беру изображение с камеры), которое я сохраняю в базе данных для дальнейшего извлечения пути.