Как сделать живые обои на Android устройстве за одну минуту
Все мы любим украшать рабочий стол своего смартфона или планшета красивыми живыми обоями. Многие в качестве обоев используют сделанные ими фотографии. Сегодня мы хотим представить вам простой способ «оживить» их.
Вы можете создать живые обои, которые реагируют на движения вашего смартфона или прокрутку его экрана буквально за минуту, причем для этого вам не потребуются ни специальные знания ни дорогие специализированные программы.
Как сделать живые обои из фотографии
Чтобы превратить фотографию или любое другое изображение в анимированные обои вам нужно сделать следующее:
1. Установите на свой смартфон бесплатное приложение Wallpaper Engine

2. Запустите приложение и на его главном экране нажмите на кнопку «Добавить» чтобы добавить в список имеющихся в нем обоев свою фотографию
3. Выберите фото из хранилища телефона или с компьютера

4. Коснитесь два раза или потяните вверх нижнюю панель с двумя белыми полосками.
5. В появившемся списке опций выберите «Реагировать на движение»

6. В открывшемся меню выберите «Движение устройства» или «Прокрутка главного экрана»
7. Опустите шторку вниз и нажмите на с символом галочки в верхнем правом углу
8. Приложение создаст живые обои и предложит установить их на главный экран. Если результат вас устраивает, нажмите на кнопку «Установить как обои».

Вы можете установить созданные вами обои как на главный экран, так и на экран блокировки.
Поздравляем, теперь у вас на смартфоне или планшете есть созданные вами собственноручно живые обои.
Похожие материалы:
- Скачать обои из MIUI 13 в высоком разрешении
- Скачать обои со множества смартфонов всех производителей
- Скачать обои с iPhone 13 и iPhone 13 Pro в высоком разрешении
- Lockscreen Widgets — виджеты на экране блокировки Android устройств
- Скачать новые живые суперобои «Сатурн» из MIUI 12 со смартфона Xiaomi Mi 10 Ultra
- Где Windows 10 хранит обои экрана блокировки и как установить их в качестве обоев на рабочий стол
Как сделать живые обои на Android и iOS самому
Персонализация обоев смартфона — это эффективный способ сделать домашний экран уникальным и непохожим на домашние экраны других пользователей. Конечно, есть очень красивые штатные заставки, миллиарды красивых фото в интернете и тысячи фотографий в самом телефоне, но именно видеообои производят ни на что не похожий эффект. Живые обои, которые перемещаются как GIF при нажатии и удерживании, делают работу с Android или iPhone еще более интересной. И да, вы правильно прочитали, что установка таких обоев возможна на любом смартфоне. Что удивительно, на iOS сделать это даже проще. Но я расскажу о процессе создания их на обеих платформах.

На заставку можно поставить не только статичные, но и анимированные обои.
Живые обои для телефона своими руками
Некоторые смартфоны поставляются со встроенными живыми обоями, но создание собственных живых обоев из любого имеющегося у вас видео занимает всего несколько минут. Подумайте, насколько интересно было бы каждый раз при включении телефона видеть водопад, который вы сняли в поездке, или капли воды, красиво падающие с крыши.
Звучит заманчиво? Тогда сейчас расскажу, как это сделать, и начну с описания процесса на Android. В этом случае надо будет скачать приложение, а на iOS все делается штатными средствами.
Как сделать живые обои на Android
Android не предлагает встроенных средств для создания живых обоев, но вы можете получить доступ к аналогичным функциям через сторонние приложения, доступные в Google Play. Поиском можно найти огромное количество таких приложений, но к наиболее известным относятся следующие:
- Live Wallpaper
- GIF Live Wallpaper
- Walloop’s Live
- Backgrounds 4k / 3D

Некоторые приложения не просто создают обои, но и автоматизируют процесс их установки, делая все за вас после того, как вы внесете необходимые настройки. Среди интересных приложений можно так же назвать Muzei Live Wallpaper, которое каждый день будет предлагать вам новые живые обои с хорошо известными произведениями искусства. А если вам больше по душе природа, то обратите внимание на Forest Live Wallpaper, предоставляющее вам живые обои на тему леса.
Расскажу, как выглядит процесс автоматического создания живых обоев на примере приложения Video Live Wallpaper.
Для начала скачайте приложение из Google Play и запустите его, затем после нескольких приветственных сообщений с краткой инструкцией откройте галерею, нажав верхнее поле. Теперь выберите видео, которое хотите использовать в качестве живых обоев.

Все просто и понятно.
Желательно, чтобы видео было вертикальным, в противном случае оно может быть сильно обрезано или искажено. Дальше выберите настройки, которые вам нравятся для ваших живых обоев. Можно даже сделать так, чтобы они воспроизводились со звуком. Впрочем, это не самая хорошая идея. Зато вы можете зациклить видео, чтобы оно воспроизводилось без перерыва. И внести несколько других настроек. Все они будут перед вами.
После того, как все будет готово, нажмите кнопку установки обоев. Вот и все. Вы можете выбрать другое приложение, но часто они создаются на одной базе и мало чем будут отличаться друг от друга. Порой они даже имеют одинаковый интерфейс.
Как приложения в Google Play крадут у пользователей деньги.
Как сделать живые обои на iPhone
Если у вас iPhone 6S или новее, то для того, чтобы сделать живые обои, нет необходимости загружать отдельное приложение. Это связано с тем, что iPhone 6S и более поздние модели (за исключением iPhone SE первого поколения) позволяют делать живые фотографии, а также поддерживают 3D или Haptic Touch. Живые фотографии — это очень короткие фрагменты видео, которые записываются до и после вашей фотографии, чтобы сделать ее ”живой”. Однако такие фото могут служить живыми обоями.
Для iOS 13 и новее процесс настройки живых обоев выглядит следующим образом.
Сначала откройте настройки телефона и найдите пункт ”Обои”. Теперь нажмите ”Выбрать новые обои”. И прокрутите вниз до раздела ”Фото Live Photos”. В нем будут те фотографии, которые можно использовать для живых обоев.


Только прежде, чем выбирать обои, убедитесь, что внизу стоит значок Live Photo. Если он перечеркнут, то фотография будет выбрана как обычная. Если фотография сделана в горизонтальной ориентации, ее можно подвинуть, чтобы на экран попадало то, что нужно.
Теперь останется только выбрать то место, где будут отображаться живые обои — экран блокировки или оба экрана. Как только вы это сделаете, у вас появятся живые обои, которые будут прокручиваться на экране блокировки, когда вы касаетесь экрана и удерживаете палец на нем.
Есть и другие способы установки живых фото. К ним относятся приложения, скачиваемые их AppStore. Они позволят вам сохранить GIF-анимацию, которую вы будете использовать в качестве живых обоев. Например, IntoLive — популярное приложение для iOS, которое может конвертировать ваши видео в Live Photos, как и Giphy.

Теги
- Google Play
- Операционная система Android
- Операционная система iOS
- Приложения для Андроид
Создание Android Live Wallpapers
Мне нужно отображать на экране телефона техническую информацию о его состоянии, точнее, о его состоянии в составе тестового пула. Видеть эту информацию я хочу всегда, то есть на Home screen, и без дополнительных телодвижений.
Способов, которые никак не повлияют на выполнение других приложения, всего два: Widget или Live wallpaper. Я выбрал Live wallpaper, они же «живые обои», потому что они автоматически попадают на все страницы Home screen, и даже на Lock screen. Эта статья содержит практические рекомендации, как создавать «живые обои».
В поисках правды
Документации о «живых обоях» кот наплакал. С момента первого (и единственного) анонса в блоге, случившегося больше 9 лет назад, Гугл не сделал ни одного внятного примера или codelab-а на эту тему. Пришлось разбираться.
Сначала основы. Внутренняя механика Андроида такова, что на устройство мы можем установить только приложение, и устройство всех приложений одинаково. Поскольку «живые обои» — это тоже приложение, то выбор управляющего компонента не велик, и стоит ожидать, что это будет Service. Найти его легко: это WallpaperService.
Экземпляров «живых обоев» может быть несколько, и жизненный цикл у них будет не такой, как у Activity или View. Соответственно, должен быть еще один базовый класс. Это WallpaperService.Engine (и он обязательно inner для WallpaperService!). Если вглядеться, то он окажется таким же поставщиком событий жизненного цикла, как Activity, Service и иже с ними.
Жизненный цикл «живых обоев» выглядит так:
Из этого списка становится понятно, когда можно/нужно перерисовать картинку (либо начать перерисовывать, если у вас анимация), и когда пора прекратить всю активность и не тратить батарейку.
Метод onSurfaceRedrawNeeded() выделяется среди остальных, читайте ниже. Также в помощь есть метод isVisible() (который в Котлине превращается в свойство isVisible ).
Теперь можно собирать этот конструктор. Начну с конца.
Рисуем
Рисовать придется самим на Canvas, никаких layout и inflater нам не будет. Как получить Canvas из SurfaceHolder и как на нем рисовать — за рамками этой статьи, ниже есть простой пример.
fun dummyDraw(c: Canvas) < c.save() c.drawColor(Color.CYAN) c.restore() >// surfaceHolder property is actually a call to the getSurfaceHolder() method fun drawSynchronously() = drawSynchronously(surfaceHolder) fun drawSynchronously(holder: SurfaceHolder) < if (!isVisible) return var c: Canvas? = null try < c = holder.lockCanvas() c?.let < dummyDraw(it) >> finally < c?.let < holder.unlockCanvasAndPost(it) >> >
Методы жизненного цикла Engine
Все методы жизненного цикла, кроме onSurfaceRedrawNeeded , не требуют немедленной перерисовки. Поэтому хорошим тоном будет перерисовку поставить в очередь.
override fun onSurfaceCreated(holder: SurfaceHolder?) < super.onSurfaceCreated(holder) redrawHandler.planRedraw() >override fun onSurfaceChanged(holder: SurfaceHolder?, format: Int, width: Int, height: Int) < super.onSurfaceChanged(holder, format, width, height) redrawHandler.planRedraw() >override fun onVisibilityChanged(visible: Boolean) < super.onVisibilityChanged(visible) redrawHandler.planRedraw() >override fun onSurfaceDestroyed(holder: SurfaceHolder?) < super.onSurfaceDestroyed(holder) redrawHandler.omitRedraw() >override fun onDestroy() < super.onDestroy() redrawHandler.omitRedraw() >override fun onSurfaceRedrawNeeded(holder: SurfaceHolder) < super.onSurfaceRedrawNeeded(holder) redrawHandler.omitRedraw() drawSynchronously(holder) // do it immediately, don't plan >
Обратите внимание на onSurfaceRedrawNeeded, который передает нам вызов одноименного коллбэка SurfaceHolder, который возникает при изменении размера и аналогичных событиях. Этот колбэк позволяет выполнить перерисовку немедленно, не допустив показа пользователю старой (и уже неверной) картинки. Система гарантирует, что пока не произошел возврат из этого метода, вывод на экран будет приостановлен.
Scheduler
Я люблю переопределять Handler, а не гонять в нем Runnable. На мой взгляд, так изящней.
В случае, если у вас анимация или регулярное обновление, то нужно будет сделать регулярную постановку сообщения в очередь (postAtTime() и postDelayed() вам в помощь). Если данные обновляются эпизодически, достаточно для обновления вызвать planRedraw() .
val redrawHandler = RedrawHandler() inner class RedrawHandler : Handler(Looper.getMainLooper()) < private val redraw = 1 fun omitRedraw() < removeMessages(redraw) >fun planRedraw() < omitRedraw() sendEmptyMessage(redraw) >override fun handleMessage(msg: Message) < when (msg.what) < redraw ->drawSynchronously() else -> super.handleMessage(msg) > > >
Service & Engine
Собирается эта марешка из Service и Engine вот так:
class FooBarWallpaperService : WallpaperService() < override fun onCreateEngine() = FooBarEngine() inner class FooBarEngine : Engine() < . >>
AndroidManifest и другие заклинания
Заклинаниями в разработке софта я называю то, что невозможно понять, но нужно точно повторить.
В . /app/src/main/res/xml должен лежать XML файл с описанием «живых обоев». Имя этого файла должно быть указано в AndroidManifest (ищите в примере ниже слово foobarwallpaper )
Не потеряйте в описании Service-а permission , meta-data и intent-filter :
Как добавить
«Живые обои» прячутся, поэтом подсказка. Описываю, как это выглядит на моем Samsung.
Для начала long press где-нибудь на Home screen, телефон перейдет в режим настройки рабочих столов, появится иконка Wallpapers.
Нажимаем на иконку Wallpapers, несколько разделов, нам нужен My wallpapers, жмем надпись View all в правом верхнем углу раздела, открывается список во весь экран.
Жмем «три точки» вызова меню, в нем пункт LIve wallpapers (у меня он единственный), появляется список доступных «живых обоев».
Выбираем наши обои, и выбираем «Home and lock screen».
Появится «превью», которое уже отрисовывается нашим приложением (чтобы распознать этот момент, есть метод isPreview()), жмем Set as wallpaper… И ничего не видим, потому что возвращаемся в список доступных обоев.
Жмем «Home» и наслаждаемся.
Причем тут Android Watch?!
Интересное наблюдение по ходу, что Faces в Android Watch сделаны по точно такой же схеме (с точностью, что у них свои базовые классы со своей реализацией): такие же Service + Engine, почти те же метаданные и intent filter для Service в манифесте (в которых слово wallpaper встречается четыре раза:), также надо писать свой шедулер на основе Handler-а.
В базовых классах Watch Faces есть готовый onDraw() , куда передается Canvas, и есть invalidate() для его вызова. Но это не принципиальное различие, а реализованная часть бойлерплейта.
В отличие от Live Wallpaper, для Watch Faces есть примеры, в них можно покопаться (ссылки здесь, в самом начале).
Что получилось
Скриншотики для приложения, которое красит экран в зеленый цвет, имеют мало смысла. Но пара фоток, что на базе этого получилось сделать для боевого стенда, под спойлером.
Пара фоток

Стикеры — это оставшаяся система обнаружения проблем предыдущего поколения.
Благодарности
Если бы не эти две статьи, я бы блуждал в потьмах намного дольше. Не представляю себе, как их можно было написать аж в 2010 году при таком качестве документации?!
Как сделать «живые» обои для Android из любого видео и GIF?

Фото 9To5Google
На Android появилась мобильная версия утилиты Wallpaper Engine, которая пользуется популярностью среди пользователей Windows. Она позволяет в пару тапов превратить любые видеоролики и GIF-анимации в «живые» обои, а также предлагает набор встроенных с интерактивными элементами.
Всего в каталоге девять стандартных изображений. Есть возможность настройки эффекта параллакс при движении смартфона, а вариант Dino Run представляет собой настоящую мини-игру — при каждом касании к экрану бегущий динозаврик подпрыгивает.
Чтобы создать «живые» обои из своего видео или GIF, достаточно перейти в раздел «Добавить» и выбрать файл из памяти смартфона — остальное сделает сама программа.
Также имеется функция плейлиста, меняющая заставки через определенные промежутки времени или, например, утром и вечером. Если Wallpaper Engine у вас установлена на ПК, то доступна синхронизация с переносом всех обоев на смартфон.

В Google Play приложение бесплатное, а версия для Windows продается за 149 рублей.
