Приложение «Фоторедактор»

Концепция приложения: Возможность нанесения подписей и рисунков на снимки с камеры.

Состав приложения:

Настройки приложения

Название приложения — Фоторедактор. можно подобрать какую-нибудь картинку для иконки. Остальные настройки можно оставить по умолчанию.

Дизайн-макет

Внешний вид приложения:

Структура:

В приложении будет только один экран. Настроим его: скроем отображение статус-бара и заголовка. Остальные настройки можно оставить по умолчанию или сделать свои.

Добавим Холст. Это будет наше основное рабочее поле. Поэтому чем больше оно, тем лучше. Сделаем настройки ширины и высоты — Наполнить родительский. Остальные настройки трогать не будем.

Далее нужно добавить 4 горизонтальных расположения под холст, один под другой. Настройки у всех будут одинаковые:

  • Выравнивание по вертикали и горизонтали — Центр.
  • Высота — автоматически.
  • Ширина — наполнить родительский.

Вы увидите, как холст немного сжался по высоте, ничего страшного. Мы стараемся сделать максимально адаптивное приложение.

В первое горизонтальное расположение добавляем 3 кнопки. Это будут кнопки выбора цвета. Поэтому основная настройка тут — переименование компонента и окраска в нужный цвет, а также задание ширины кнопки. Поскольку тут планируется 3 кнопки, то и ширину будем делать 30% от ширины экрана. Пример для зеленого цвета:

Таким же образом поступаем со вторым расположением — добавляем три кнопки и настраиваем под свои цвета.
Должно получится 6 разных цветов. Каких — выбирайте сами, причем ваш выбор не ограничивается установленными по умолчанию, можно выбрать цвет на палитре, кликнув пункт Custom:

В третье расположение добавляем 2 кнопки — они будут отвечать за увеличение и уменьшение размера кисти.

  • Компоненты так и назовем — Больше и Меньше.
  • Ширину сделаем 25%.
  • Оформление кнопок любое.
  • Текст для кнопки больше можно так и написать — Больше, а можно поставить символ ^.
  • Текст для кнопки меньше можно также прописать словами, а можно и латинской буквой v.

В последнее расположение добавим еще 3 кнопки. Они будут отвечать за фото, сохранение и очистку холста.

Оформление у них может быть любое, главное, что надписи и названия компонентов должны однозначно отвечать назначению кнопок. Как то:

  • Компонент «Снимок» — текст кнопки «Снимок».
  • Компонент «Сохранить» — текст кнопки «Save» (перевели на английский язык в целях сокращения количества символов).
  • Компонент «Очистить» — текст кнопки «Очистить».

Добавляем невидимый компонент «Камера», чтобы приложение могло работать с камерой смартфона.

Добавляем невидимый компонент «Часы». Настройки оставляем по умолчанию.

Теперь можно переходить к программированию.

Программирование

Для начала запрограммируем фотографию с камеры. При нажатии кнопки «Снимок» включается камера.

Камера сделала фото, теперь нужно его установить как фон холста.

Фото отобразилось на холсте, теперь можно с ним что-то делать. Настроим цвет кисти. Для этого вначале создадим переменную Цвет, по умолчанию у нее будет белый цвет.

Теперь при нажатии кнопки определенного цвета должен присваиваться нужный цвет.

Обратите внимание, что здесь в выпадающем списке цветов не так много, и если вы выбирали какой-то нестандартный цвет, то вам придется создавать его с помощью кодирования RGB.

Теперь установим размер кисти. Для этого создадим переменную Размер и присвоим ей значение 5 (что-то среднее, так сказать).

Размер мы будем увеличивать или уменьшать постепенно, поэтому здесь потребуются математические операции сложения и вычитания.

Настала пора рисовать. Запрограммируем рисование линии по холсту.

Используя ранее установленные цвет и размер кисти, рисуем линию от точки с координатами x1, y1 (точка первого касания) до точки x2, y2 (точки прекращения касания).

Если у нас что-то не получилось — можем стереть нарисованное. Для этого очистим Холст.

Будьте внимательны, очистка касается только нарисованных на холсте линий, фон останется прежним.

Чтобы заменить фоновое изображение, нужно будет сделать новый снимок камеры.

Если нам понравилось наше творение, можно его сохранить как отдельный файл. Для этого составим следующий блок:

Когда нажмут кнопку «Сохранить», нужно выполнить операцию, но игнорировать результат (это требуется, чтобы не выводить ошибок в случае проблем — не тревожить лишний раз пользователя). Операция — сохранение Холста как отдельного файла, с именем, состоящим из трех частей:

  • статичная часть названия «image-» (больше для пользователя, потому что так принято),
  • текущие дата и время (нужно для того, чтобы имена файлов различались, иначе будет происходить перезапись изображений),
  • расширение файла .jpg (чтобы файл сохранялся в нужном формате).

Например, сохраненная в 19 часов 32 минуты 12 секунд 14 июля 2024 года картинка будет иметь имя image-14072024-193212.jpg.

При первом сохранении картинки из приложения будет создана папка в памяти устройства, куда и будут сохранятся изображения. Адрес папки будет зависеть от версии андроид, поэтому придется немного поискать.

Наше приложение готово. Можно создавать .apk файл и проверять на устройстве.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт защищен reCAPTCHA и применяются Политика конфиденциальности и Условия обслуживания применять.

Срок проверки reCAPTCHA истек. Перезагрузите страницу.