Подобно тому, как объект MediaStore предоставляет намерение для аудиозаписи, он также предоставляет намерение для получения изображения.
В классе активности, показанном в, определен метод captureImage. В этом методе создается намерение, имя действия которого устанавливается в MediaStore.ACTION_IMAGE_CAPTURE. Когда это намерение запускается, на передний план выходит приложение камеры и пользователь получает изображение. Поскольку URI был создан заранее, можно добавить некоторые детали об изображении перед тем, как камера получит его. Именно это и делает класс ConventValues. Помимо TITLE и DESCRIPTION к values могут быть добавлены дополнительные атрибуты. Полный их список ищите в разделе MediaStore.Images.ImageColumn руководства по Android. После получения изображения инициируется метод обратного вызова onActivityResult . В примере использовался поставщик медиа-контента для создания нового файла. Можно было бы также создать новый URI из нового файла на SD-карте, ниже:
myPicture = Uri.fromFile(new
File(Environment.getExternalStoragePublicDirectory(DIRECTORY DCIM) + "/ANDRO/imageCaptureIntent.jpg"));
Однако создание URI подобным образом не позволяет легко устанавливать такие атрибуты изображения, как TITLE и DESCRIPTION. Существует другой способ вызвать намерение камеры для получения изображения. Если вообще не передавать URI с намерением, то будет получен объект растрового изображения (Bitmap), возвращенный в аргументе намерения для onActivityResult . Проблема, связанная с этим подходом, состоит в том, что по умолчанию растровое изображение будет масштабировано в сторону уменьшения от своего исходного размера, отчасти потому, что в команде разработчиков Android не хотели, чтобы вы получали большие объемы данных из активности камеры в свою активность. Растровое изображение будет иметь размер около Кбайт. Чтобы получить объект Bitmap, внутри onActivityResult понадобится сделать примерно следующее:
Bitmap myBitmap = (Bitmap) data.getExtras.get("data");
Класс MediaStore также имеет намерение для захвата видео, которое ведет себя аналогичным образом. Для захвата видео можно использовать действие MediaStore. ACTION_VIDEO_CAPTURE.
Опубликовал Kest
February 14 2015 13:38:39 ·
0 Комментариев ·
2532 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.