Сделайте Живые Обои под Android Используя GIF Анимацию.
Вы когда нибудь видели красивую GIF анимацию, которая повторяется беспрерывно, и хотели бы поставить такую в качестве живых обоев на ваше устройство, которое работает под Android? Что ж, вы можете это сделать, и в этом уроке, я покажу вам как.
Введение
Чтобы создавать интересные и красивый живые обои с нуля, используя только математику и код, который будет генерировать анимацию, возможно придется много и долго потрудиться. А так же нужно привлечь всю свою креативность. С другой стороны, создать анимированные GIF обои, или найти такие в сети — гораздо проще. В этом уроке, вы узнаете, как конвертировать любоую GIF анимацию в живые обои.
Необходимая первоначальная подготовка
Убедитесь, что у вас установлена последняя версия Android Studio. Вы можете закачать ее с сайта Android Developer .
Хотя можно сделать любую GIF анимацию, я рекомендую вам загрузить хороший синемаграф . Синемаграф — это не что иное, как GIF анимация, которая обычно делается из видео, и плавно зацикливается. Вы можете найти много вариантов на Flickr .
В этом уроке, я использую синемаграф, созданный пользователем Flickr — djandyw.com, так как он распространяется по лицензии Creative Commons.
1. Создайте Новый Проект
Запустите Android Studio, создайте новый проект, и дайте ему название GIFWallpaper. Дайте ему уникальное имя, если вы планируете разместить его на Google Play.
Задайте для minimum SDK — API 8: Android 2.2 (Froyo).
Нашему приложению не нужен статус Activity , поэтому выбираем Add No Activity и жмем Finish.
2. Описание Обоев
Для живых обоев, нужен файл, который будет их описывать. Создайте новый XML файл res/xml/wallpaper.xml и замените его содержание следующим:
Значения имени (label) и иконки (thumbnail) важны, так как они будут показываться в списке обоев доступных на вашем устройстве.
3. Редактируем Манифес т
Для запуска живых обоев, нашему приложению необходимо прописать одно разрешение — android.permission.BIND_WALLPAPER .
Живые обои запускаются как объект Service , который может принимать значение android.service.wallpaper.WallpaperService в качестве intent action. Назовем Service GIFWallpaperService — и добавим его в манифест проекта — AndroidManifest.xml.
Далее, чтобы быть уверенным, что наше приложение ставится на устройство,которое может работать с живыми обоями, мы добавим в манифест такой код:
4. Добавляем GIF анимацию
Копируйте загруженную с Flickr GIF анимацию в папку проекта — assets. Я дал ему название girl.gif.
5. Создаем Сервис
Создадим новый Java класс и назовем его GIFWallpaperService.java. Он должен наследовать класс WallpaperService .
Поскольку WallpaperService — это абстрактный класс, вы должны переопределить метод onCreateEngine и вернуть экземпляр вашему Engine , который может отрисовать кадры для GIF.
Чтобы использовать анимированный GIF, вы должны сперва конвертировать его в объект Movie . Для этого вы можете использовать метод decodeStream класса Movie . После того как Movie создан, отправьте его как параметр в конструктор Engine .
Вот как должен выглядеть метод onCreateEngine :
6. Создаем Engine
Теперь давайте работать над Engine . Создайте класс GIFWallpaperEngine внутри класса GIFWallpaperService , который будет наследовать WallpaperService.Engine .
В этом классе добавим следующие поля:
- frameDuration : целое число, указывающее длину задержки между перерисовкой анимации. Значение 20, дает нам 50 фреймов в секунду.
- visible : логическая переменная, которая дает программе знать, когда именно обои видны на дисплее. Это важно, потому что нам не нужно отрисовывать обои, когда их не видно.
- movie : это анимированный GIFв форме объекта Movie .
- holder : это отсылка к объекту SurfaceHolder доступному в программе. Он будет инициирован с помощью описания метода onCreate .
- handler : это объект Handler , который будет использоваться для запуска Runnable , который отвечает за отрисовку обоев.
Ваш класс должен выглядеть таким образом:
Теперь создадим метод под названием draw , который будет отрисовывать содержимое gif файла. Давайте распишем этот метод:
- Сначала мы проверяем переменную visible на условие true . Если это так, то мы продолжаем.
- Используем комманду SurfaceHolder»s из метода lockCanvas для создания холста — Canvas , на котором будет отрисовываться наша анимация.
- Рисуем кадра GIF анимации на Canvas , после масштабирования и позиционирования.
- После того, как отрисовка завершена, передаем Canvas назад в SurfaceHolder .
- Обновляем текущий кадр GIF анимации, используя метод setTime объекта Movie .
- Вызываем метод снова используя handler после ожидания frameDuration в миллисекундах.
Метод draw никогда не будет вызываться непосредственно. Он всегда вызывается через использование объектов Handler и Runnable . Поэтому, двайте создадим объект Runnable и назавем его drawGIF .
Добавьте в класс GIFWallpaperService следующий код:
Метод onVisibilityChanged автоматически вызывается, каждый раз когда будет меняться состояние обоев. Мы должны переписать его, что бы на основе значения аргумента visible , запускать или останавливать drawGIF . Метод removeCallbacks объекта Handler будет использоваться для остановки запущенных обоев drawGIF .
И наконец, пререпишем метод onDestroy для Engine , который будет останавливать запуск drawGIF , если обои деактивированы.
7. Скомпилируйте и Установите
Теперь ваши живые обои готовы. Скомпилируйте их и установите на ваш девайс под Android. После того, как вы их установите, вы сможете найти их в списке доступных обоев.
Большинство лаунчеров дают вам возможность изменять обои, после долгого нажатия на экран. Или вы можете зайти в настройки экрана, чтобы сменить обои.
Если GIF выглядить слишком маленьким, или неправильно позиционирован, вернитесь вновь к методу draw и настройте масштаб и положение.
Заключение
Тепере вы знаете, как использовать GIF анимацию, чтобы создать живые обои. Обязательно поэкспериментируюйте с другими вариантами GIF анимации. Если вы захотите выложить свои обои на Google Play, убедитесь, что у вас есть разрешение, от автора, на использование его GIF анимации в коммерческих целях. Зайдите на сайт Android Developer , чтобы узнать больше о классе WallpaperService .
Как создать живые обои на смартфоне Android
Любите изменять оформление своего мобильного устройства Android, устанавливая новые обои и темы, меняя иконки, устанавливая новые виджеты и добавляя новые элементы на его главный экран, но вам не хватает чего-то оригинального?
Как насчёт того, чтобы создать свои собственные живые обои для Android и удивить ими всех окружающих? В этой стать вы найдёте решение, позволяющее сделать это!
Как создать собственные живые обои на смартфоне Android
Существует множество приложений для реализации данной цели, здесь же мы рассмотрим на конкретном примере, как создавать живые обои для Android с помощью Video Wallpaper:
- Запустите приложение, предоставьте ему запрашиваемые права доступа и выберите опцию видео, из которого вы хотите сделать живые обои;
- Задайте нужный временной промежуток, включите или отключите аудио и нажмите на значок картинки в правом верхнем углу.
- Выберите опцию «Применить» для того, чтобы установить получившийся результат в качестве обоев на вашем смартфоне.
Кроме того, вы можете установить уже готовые живые обои на Android, если вы не хотите возиться с созданием своих собственных.
Если же вам интересно создание более профессиональных живых обоев, то вам нужно попробовать установить приложение KLWP для создания живых обоев.
Video Live Wallpaper
Лучшее приложение для создания крутых живых обоев из абсолютно любых видео, которые есть в галерее вашего смартфона.
KLWP: Kustom Live Wallpaper HD
Более профессиональная утилита, включающая в себя все необходимые инструменты для создания живых обоев с нуля.
Как создать живые обои на Android и iOS
Если вы из тех, кто часто меняет обои на экране своего смартфона, вам может понравиться и создавать их самостоятельно. И если в качестве простых обоев можно использовать любое фото, то с живыми ситуация сложнее и тут вам могут понадобиться специальные приложения, о которых мы сегодня и поговорим.
На Android
Встроенные средства операционки не предлагают инструментов для создания живых обоев, зато это можно сделать при помощи стороннего софта. Например, Video Live Wallpaper Maker доступен для скачивания бесплатно, но часть премиальных опций будет доступна только по подписке. Однако даже в бесплатной версии программа предлагает необходимые для комфортного использования опции, при этом периодически показывая рекламу.
После загрузки и запуска, приложение предложит выбрать видео, которое вы планируете превратить в живые обои. Вам останется убрать звук и отредактировать его по размеру экрана, после чего сохранить изменения.
Обновление до iOS 16 принесло пользователям немало интересных возможностей, но лишило пользователей поддержки живых обоев. Если же вы используете более старые версии системы, можете продолжать чтение.
Первый вариант, доступный всем пользователям, это Live Photo — живые фотографии, которые вы можете снимать прямо на свой iPhone. Переходим в Настройки — Обои — Выбрать новые обои — Живые фотографии. Выбрав желаемое изображение, укажите, где оно будет отображаться: на экране блокировки, на главном экране или оба варианта.
Второй вариант — воспользоваться сторонними приложениям. На простоях AppStore вы найдете немало подобных приложений, но если вы часто редактируете видео, обратите внимание на intoLive. Это приложение предлагает широкие настройки для редактирования и монтажа видео, причем его интерфейс заточен именно для работы на мобильных гаджетах. Среди прочих опций, программа предлагает конвертацию видео в живые фото.
После запуска программы, вам нужно выбрать “Новый проект”, а потом интересующий вас видеоролик. На этапе редактирования, вы можете накладывать на него любые фильтры, дополнять изображение стикерами и текстом. Также вам нужно будет указать разрешение и частоту кадров итогового ролика. Когда все необходимые корректировки внесены, выбираете формат Live Photo и нажимаете “Save to Photo” и после того, как ваше видео сохраняется в формате живой фотографии, переходите к первому варианту и проделываете описанные там действия.
Как и вариант для Android, эта программа распространяется бесплатно, но содержит набор платных функций.
Что до владельцев смартфонов с iOS 16, на момент написания этого материала, им доступны только динамические обои, предусмотренные системой, но не живые обои и сторонние приложения не помогут это исправить.
На этом закончим. Как видим, создание уникальных живых обоев не представляет сложностей, если ваш смартфон поддерживает такую опцию. Расскажите в комментариях, используете ли вы анимированные заставки или же предпочитаете статичные изображения, а больше интересных материалов ищите в нашем Telegram-канале PDALIFE Official.
Разработка живых обоев для Android
Всех приветствую. Решился я наконец рассказть о своём маленьком проектике.
Все началось примерно в 2014 году, когда я приобрел себе HTC one X. Этот аппарат был идеальным для меня, и начиная с того момента я стал фанатом HTC. В этом аппарате были интересные живые обои в силе слайд-шоу, всё в них было хорошо, но были некоторые ньюансы, например нельзя запускать смену изображения ручками, например через двойной тап по экрану, а этого очень хотелось. Картинки перемещались не только в одну (рандомную) сторону — к примеру.
И вот захотелось мне найти замену, которая меня бы удовлетворяла больше. Перелопачивая всё, что было на плей-мараркете найти что-то стоящее не удавалось. То работает рывками, то весит дофига, то свайпов нет, то растягивает изображение. Нашлось только ОДНО приложение платное, которое более-менее выполняло то, что мне хотелось, но тут сыграл роль мой перфекционизм, который никак не давай покоя: Зачем делать экраны настроек, интерфейс приложения каким-то цветастым-пердястым, почему вообще приложение платное, ведь ничего сверх естественного оно не делает. И так было много мелких причин, которые вылились в «не нравится? — сделай сам!». Ок, попробуем.
Для себя я поставил несколько целей:
1. Минимализм в весе приложения, — ибо почему приложение весит >10Мб? Чего там такого?
2. Максимально простой интерфейс, максимально стандартный, без всяких свистелок перделок.
3. Обязательно использовать OpenGL 2.0 (ну и выше соответственно)! Только так можно добиться максимальной плавности и производительности.
4. Картинки прокручиваются влево-вправо и свайпом.
5. Двойной тап по экрану меняет изображение.
В процессе разработки удалось добиться всего что хотелось и даже больше:
1. Вес приложения 117кб. из них 70кб весит дефолтная картинка!
— — — Вот почему другие приложения весят в десятки раз больше — так и осталось загадкой.
2. Приложению ВООБЩЕ не нужны разрешения!
— — — Сравните с другими подобными, где и доступ в интернет и чуть ли доспу к СМС не запрашивают.
3. Можно выбрать как каталог из которого будут браться файлы, так и отдельно выбрать файл/файлы.
4. Удалось заставить воспроизводить видео-файлы!
— — — Сравнивая с аналогами которые в качестве обоев рабочего стола могут ставить видео-файлы, они либо платные, либо растягивают видео, ни у одного не видел возможность свайпа. А некоторые вообще сжирают оперативку и зависают. В целом вообще печаль.
И при этом откуда у них столько скачиваний? Ума не приложу.
Приложение сделал бесплатное, без реклам, без всякой чепухи. И бонусом открытый исходный код.