Android studio сохранить как картинку
Перейти к содержимому

Android studio сохранить как картинку

Android studio сохранить как картинку

Completing the CAPTCHA proves you are a human and gives you temporary access to the web property.

What can I do to prevent this in the future?

If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware.

If you are at an office or shared network, you can ask the network administrator to run a scan across the network looking for misconfigured or infected devices.

Another way to prevent getting this page in the future is to use Privacy Pass. You may need to download version 2.0 now from the Chrome Web Store.

Cloudflare Ray ID: 71aef6bbfa7076e3 • Your IP : 82.102.23.104 • Performance & security by Cloudflare

Как сохранить ImageView как изображение?

У меня есть ImageView с намерением поделиться (который отлично работает, поднимает все приложения, с которыми я могу поделиться изображением), однако я не могу поделиться фотографией, потому что у нее нет пути на моем телефоне. Как мне сохранить ImageView на моем телефоне? Ниже приведен мой код.

обновление Ладно, я понял. Теперь у меня есть новый вопрос, как я могу сохранить это изображение в новую папку?

2 ответов

при сохранении и загрузке сначала необходимо получить корневой путь системы. Вот как бы я это сделал.

я столкнулся с несколькими решениями, которые не решают эту проблему.

вот решение, которое сработало для меня. One gotcha-вам нужно хранить изображения в общем или не частном месте приложения (http://developer.android.com/guide/topics/data/data-storage.html#InternalCache)

многие предложения говорят, чтобы хранить в Apps » частное » расположение кэша, но это, конечно, не доступно через другие внешние приложения, включая общие Share намерение файла, который используется. Когда вы попробуете это, он будет работать, но, например, dropbox скажет вам, что файл больше не доступен.

/* Шаг 1-сохранить растровый файл локально с помощью функции сохранения файла ниже. */

/* Шаг 2-Поделитесь не частным абсолютным путем к файлу общего доступа*/

/ * ФУНКЦИЯ СОХРАНЕНИЯ ИЗОБРАЖЕНИЯ*/

/* Шаг 3-Результат намерения файла общего доступа. Необходимость удаленного временного файла так далее. */

Урок 133. Камера. Делаем снимок и пишем видео

На прошлом уроке мы очень подробно рассмотрели как правильно выводить изображение с камеры на экран. Теперь узнаем, как это изображение можно сохранить и как фото и как видео.

Фото делается совсем просто, одним методом. А записать видео нам поможет MediaRecorder. Напомню, что MediaRecorder мы подробно рассмотрели в Уроке 129.

Чтобы не усложнять урок и пример я не буду здесь заморачиваться с размерами превью и экрана, с поворотами и с описанием работы с камерой. Если нужны подробности – загляните в Урок 132.

Project name: P1331_CameraRecord
Build Target: Android 2.3.3
Application name: CameraRecord
Package name: ru.startandroid.develop.p1331camerarecord
Create Activity: MainActivity

В strings.xml добавим строки:

Экран main.xml:

На экране у нас SurfaceView и три кнопки: сделать фото, начать запись, остановить запись.

В манифест пропишем разрешения:

<uses-permission android:name=»android.permission.CAMERA»/>
<uses-permission android:name=»android.permission.RECORD_AUDIO»/>
<uses-permission android:name=»android.permission.WRITE_EXTERNAL_STORAGE»/>

Это работа с камерой, запись звука и запись на sd-карту.

MainActivity.java:

В onCreate мы создаем пути для фото и видео файлов, в которые будет сохраняться результат. Далее определяем SurfaceView, Holder и callback к нему.

В onResume получаем доступ к камере.

В onPause освобождаем ресурсы MediaRecorder и камеры.

onClickPicture – это обработчик нажатия на кнопку Picture. Здесь будем делать снимок. Для этого нам необходимо вызвать метод takePicture. Этот метод асинхронный, для получения результата используются callback-и. Их три.

Первый, ShutterCallback, сработает сразу после того, как камера сделает снимок. Сюда можно повесить звук затвора, например. Я его не использую, передаю null.

Второй, PictureCallback, вернет нам сырую raw картинку. Я его также не использую, передаю null.

Третий, PictureCallback, вернет нам готовую сжатую jpeg картинку. Это нам и надо. Создаем callback и в его методе onPictureTaken будем получать byte-массив. Это и есть готовое фото, которое мы пишем в файл.

onClickStartRecord – обработчик нажатия на кнопку Start. Здесь будем включать запись видео с камеры. Для этого подготавливаем MediaRecorder в методе prepareVideoRecorder. Метод вернет нам значение Boolean, по которому мы поймем удалось ли подготовить объект. Если он готов, стартуем запись методом start. Если при подготовке возникли проблемы, то освобождаем ресурсы.

onClickStopRecord – обработчик кнопки Stop. Здесь останавливаем запись видео методом stop и освобождаем ресурсы. Кстати, в хелпе к методу stop написано, что он может выдавать RuntimeException, если что-то не так с аудио/видео, которое дали MediaRecorder-у на вход. Имеет смысл эту ошибку ловить и удалять в таком случае записываемый файл, т.к. там будут некорректные данные.

prepareVideoRecorder – метод подготовки MediaRecorder к записи. Сначала методом unlock снимаем монопольный доступ с камеры, чтобы MediaRecorder мог ее использовать. Затем создаем объект MediaRecorder. Далее идут 6 методов его настройки:

setCamera – предоставляем камеру, которая будет использована для записи
setAudioSource: указываем источник звука – CAMCORDER
setVideoSource: указываем источник видео – CAMERA
setProfile: указываем профиль записи. В профиле содержаться такие данные как: тип контейнера, аудио/видео кодек, битрейт и пр. Чтобы нам руками не задавать все эти характеристики, используем профили. Список профилей можно посмотреть в хелпе к объекту CamcorderProfile. Мы используем высокое качество — QUALITY_HIGH.
setOutputFile: указываем путь к файлу, куда будет записано видео
setPreviewDisplay: указываем surface для показа превью в процессе записи. Если ранее вы для камеры уже указали surface в ее методе setPreviewDisplay, то этот метод вызывать необязательно.

Хелп очень рекомендует вызывать эти 6 методов именно в таком порядке, иначе грозит ошибками и неудачей при записи.

Когда все параметры указали, вызываем prepare и если все ок, то получаем MediaRecorder готовый к записи.

В методе releaseMediaRecorder освобождаем ресурсы MediaRecorder и снова монополизируем камеру методом lock.

Можно все сохранить и запускать. По нажатию на кнопку Picture будет сохраняться фото, а по кнопкам Start и Stop – стартовать и останавливаться запись видео. Полученные фото и видео будут сохранены в папке Pictures под именами myphoto.jpg и myvideo.3gp

На следующем уроке:

— меняем настройки камеры

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме

Добавить комментарий

Ваш адрес email не будет опубликован.