1. Цель дизайна
Для более глубокого понимания Android-разработки я изначально планировал разработать фотоальбом или мультимедийное приложение, связанное с видео, но случайно увидел на github фреймворк, в котором определялось множество связанных картинок и видео. может получить локальные файлы мобильного телефона, в отличие от предыдущего приложения, которое необходимо импортировать в drawable или получить в Интернете, поэтому я решил использовать github для разработки этого курса.
https://github.com/LuckSiege/PictureSelector
2. Описание функции
- Предварительный просмотр и просмотр фотографий, видео и аудио, хранящихся в мобильном телефоне, и вы можете найти различные типы фотографий, видео и аудио, хранящихся в мобильном телефоне, через приложение, включая png, jpg, jpeg и другие форматы.
- Однократный или множественный выбор фотографий, аудио и видео, хранящихся локально на мобильном телефоне, и возврат выбранных фотографий, видео и аудио на домашнюю страницу для отображения
- Делайте фотографии, видео или аудиозаписи и возвращайте результаты на домашнюю страницу для отображения
- Воспроизведение выбранных фото, видео и аудио на главной странице
3. Детальный дизайн
3.1 Бизнес-логика системы
Блок-схема бизнес-логики
3.2 Конструкция функционального модуля системы
3.3 Дизайн интерфейса системы
- Главная: Отображение выбранных файлов.
- На странице параметров операции нажмите на домашнюю страницу, чтобы перейти на страницу выбора операции, где вы можете выбрать, добавлять ли фотографии, видео, аудио или делать снимки.
- Страница отображения локальных файлов: отображение локальных файлов (изображений, видео, аудио) мобильного телефона аналогично альбому мобильного телефона, который можно выбрать и просмотреть.
- Страница предварительного просмотра файла: щелкните файл, который вы хотите выбрать, и файл будет предварительно просмотрен.
4. Реализация программы
Прежде всего, поскольку я использовал стороннюю среду интеграции, мне сначала нужно использовать gradle для импорта
всех проектов { repositories { jcenter() maven { url 'https://jitpack.io' } } } , а затем создать файл xml в макете.Во-первых, используйте домашнюю страницу RecyclerView используется для облегчения расположения выбранных изображений, а также используйте относительный макет и представление изображений и макет в библиотеке для отображения изображений и видео. В MainActivity используйте getviewbyid, чтобы получить элемент управления пользовательского интерфейса в макете, новый GridImageAdapter для хранения выбранного файла, а затем определите тип сохраненного файла с помощью функции, встроенной в библиотеку, и используйте функцию переключения для использования различных методов. интеграции, чтобы открыть соответствующий соответствующий документ.
И если вы хотите получить локальные файлы мобильного телефона, вам нужно подать заявку на разрешение на запись
Затем создайте и щелкните соответствующий прослушиватель для элемента управления пользовательского интерфейса, используйте getid элемента управления, чтобы оценить событие ответа, и используйте функцию в библиотеке, чтобы отобразить локальный фотоальбом мобильного телефона и выполнить соответствующие операции в каждом соответствующем событии.
5. Запуск результатов
Выберите альбом:
Слева интерфейс моего приложения, а справа интерфейс галереи, которая идет с симулятором.Вы видите, что приложение нашло все папки, включая картинки в симуляторе, а также получило все картинки и видео, сохраненные локально на телефоне.
Вы можете щелкнуть изображение, чтобы просмотреть его, или провести пальцем влево и вправо, чтобы выбрать другой альбом.
Выбранное изображение вернется на домашнюю страницу для отображения, и вы также можете войти на страницу просмотра на домашней странице.
Когда звук выбран, все локальные аудио отображаются и могут быть воспроизведены после нажатия
Выбрав видео, вы также можете воспроизвести его и выбрать переход на домашнюю страницу.Вы
также можете записывать видео, делать снимки и записывать звук.
6. Резюме
- В этом эксперименте я использовал библиотеку с открытым исходным кодом в github, которая содержит много знаний, которые я не усвоил в классе, таких как получение разрешений на операции с файлами, импорт библиотек с открытым исходным кодом и процесс реализации различных съемок, таких как видеозапись, фотосъемка и видеозапись.
Но есть и учёные - Были углублены знания, например, как аккуратно расположить картинки в дизайне страницы макета, как научиться использовать RecyclerView; при добавлении событий мониторинга в элементы управления использовать getid и переключатель вида для добавления событий в разные элементы управления; использовать адаптеры для размещения фотографии Различные файлы, такие как видео и видео, и добавить свои собственные события ответа на клик для каждого изображения, видео и т. д. в адаптере, чтобы завершить просмотр выбранных файлов на домашней странице.
- Так же много чего можно улучшить в этой системе.Например много проблем при импорте библиотеки и ее использовании.Некоторые проблемы решены,а некоторые не решены.Например есть функция кадрирования и вращающиеся картинки в библиотеке с открытым исходным кодом, но при его использовании приложение будет закрыто, а в журнале не будет отображаться сообщение об ошибке.В итоге решения нет, поэтому приходится отказываться от этой функции; имя файла не может отображаться при выборе, и изображение можно просматривать напрямую, но видео и аудио должны отображаться.Откройте воспроизведение, чтобы определить имя файла.