Получить изображение Uri + миниатюра картинки, снятой камерой в Android
Я хочу обновить ImageView изображением, которое я делаю с помощью встроенной камеры Android. Я использую следующий код:
void getPhoto() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TAKE_PICTURE);
}
После этого я получаю фото с:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == TAKE_PICTURE) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
ImageView photoView = (ImageView) findViewById(R.id.photoId);
photoView.setImageBitmap(photo);
}
}
Но с этим кодом, независимо от того, что я делаю, я получаю только эскиз фотографии, которую я сделал - мой вопрос, как я могу получить Uri фотографии, только что сделанной, чтобы работать не с миниатюрой, а с исходным изображением?
Ps. Мне на самом деле нужен эскиз фотографии, но мне также нужен Uri оригинальной фотографии.
1 ответ
Я ставлю свой собственный URI, чтобы сообщить, где сохранить, тогда вы знаете, где он находится, не уверенный, что есть какой-либо другой способ. Создайте несколько полей для вашего файла.
private String imagePath = "/sdcard/Camera/test.jpg";
private File originalFile;
Затем инициализируйте файл.
originalFile = new File(imagePath);
Теперь запустите приложение Camera с намерением, передавая URI в качестве дополнительного.
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri outputFileUri = Uri.fromFile(originalFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, RESULT_CAPTURE_IMAGE);
В onActivityResult() извлеките URI
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RESULT_CAPTURE_IMAGE && resultCode == Activity.RESULT_OK) {
mBitmap = BitmapFactory.decodeFile(originalImagePath, BitmapFactoryOptions); //set whatever bitmap options you need.
Таким образом, теперь вы можете создать растровое изображение, используя createBitmap или использовать путь к файлу для всего, что вам нужно