Как сделать плавающие обои на андроид
Андроид живые обои. Как делать?
Независимо от того, какие обои вы задумали сделать, существуют 2 различных подхода к реализации ваших задумок: SGL (в дальнейшем Canvas) и OpenGL. Когда я создавал свои первые обои у меня ушло несколько дней, чтобы попробовать различные средства и методы, поэтому эта статья сэкономит вам немного времени и быстро введет вас в курс дел.
Canvas
Если работает для вас — даже и не думайте об OpenGL
Что же такое Canvas? Это главный способ рисования GUI в андроид. Все формы, кнопочки и переключатели отрисовываются с помощью данной технологии. Нам дается Bitmap определенного размера (1024х600 например), на котором мы должны рисовать. Рисовать мы можем с использованием класса Canvas, который имеет богатое высокоуровневое АПИ для рисования. Скажем, нарисовать окружность заданной толщины определенного цвета с включенным сглаживанием не составляет никакой сложности. Есть даже поддержка шейдеров.
Но зачем тогда спрашивается OpenGL?
Недостатки Canvas:
- низкая скорость. Вся работа с графикой производится без аппаратного ускорения (есть исключение). То есть ваш Bitmap вы будите заполнять усилиями центрального процессора, с чем он отлично справляется, если Bitmap умеренного размера. Скорость рисования пропорциональна площади и сильно замедляется при ее увеличении.
- никакого 3d и наворотов. Канва не поддерживает 3d, свойства материалов, расстановку и настройку источников света и др. Если вам нужно, что-то из этого списка, то придется эмулировать это самим, что еще больше замедлит и без того низкую скорость отрисовки.
Преимужества Canvas:
- простота интеграции в приложение. Рисование с помощью Canvas доступно вам сразу. Не надо создавать специальных поверхностей на которую будет выводится изображение созданное с помощью OpenGL. Не надо создавать поток, в котором работает OpenGL и синхронизировать его с вашим сервисом обоев (очень нетривиальная задача).
- простое высокоуровневое АПИ. У канвы есть готовая функция рисования почти на все случаи жизни. Требуется 5 минут, чтобы прочитать документацию на класс и начать успешно использовать его.
К канве мы еще вернемся, теперь поговорим об альтернативном подходе.
OpenGL
Если Canvas не справляется, то больше ничего не остается.
OpenGL, DirectX — все мы слышали эти «крутые» слова. На Андроид у нас доступен OpenGL, но не простой (не такой как на десктопе), а урезанный. Причем у нас даже есть выбор: OpenGL ES 1.0/1.1 (работает везде) или OpenGL ES 2.0 (Android 2.2+). Что такое ES в названии? ES говорит нам о том, что это урезанная версия OpenGL, из которой убрали все лишнее, чтобы сделать АПИ как можно более компактнее и не тащить за собой на мобильные устройства вещи, которые легко эмулировать на центральном процессоре. То есть не все примеры из книжек по обычному OpenGL у вас заработают, но в принципе осталось все также.
Как было замечено версий у нас две: 1.0/1.1 и 2.0. Почитать об их отличиях можно в википедии (выбрать английский язык). Причем не все устройства одинаково поддерживают все расширения OpenGL ES, перед тем как использовать некоторые, нужно убедится, что это поддреживается (почитать можно тут).
Недостатки OpenGL:
- тяжело интегрировать в приложение. Чтобы выводить графику на экран устройства с помощью OpenGL необходимо создать специальную поверхность и специальный поток, который будет на этой поверхности рисовать. Необходимо также позаботиться о синхронизации системы и потока.
- сложное низкоуровневое АПИ. У нас нет функции нарисовать квадрат, нет функции вывести картинку. Зато есть куча флагов и режимов рисования. Если механизмы задания вершин полигонов, матриц преобразования координат, функции загрузки текстур и средства управления наложением… В общем все очень запутано, если вы раньше никогда не имели дело с OpenGL. На освоение уйдет несколько дней.
Преимущества OpenGL:
- высокая скорость работы. Никогда ваше приложение с использованием Canvas не будет работать быстрее и плавнее чем с использованием OpenGL (при наличии прямых рук конечно же).
- поддержка 3d и наворотов. Трехмерные гонки или стрелялки? Все это возможно с использованием OpenGL. Создавайте источники света, управляйте камерой, создайте реалистичный эффект водной поверхности, используйте материалы и др.
И что же делать?
OpenGL. Делаем проще.
Когда тяжело в одиночку — просим помощи.
Понятно, что мы далеко не первые, кто решил использовать OpenGL и все мы уже играли в красивые игрушки, перерезали веревки и спасали сворованные яйца. Редко когда игра пишется абсолютно с нуля, обычно используются движки, которые берут на себя все скучные занятия и предлагают нам более простое АПИ для реализации наших фантазий. И оказываться, применительно к живым обоям, вариантов сделать проще у нас 2…
GLSurfaceView adapted for 3D Live Wallpapers
Так называется статья Роберта Грина, где он рассказывает о созданных им классах (основной из которых GLWallpaperService), которые выполняют всю работу по настройке за нас. Нам же остается писать код, который рисует. Скачав с github файлы проекта (проект живой и недавно обновлялся), вы получите готовые обои, которые правда ничего не делают красивого (просто заливают весь фон цветом), но они уже работают. Вам остается только написать требуемый код для рисования. Об интерфейсе взаимодействия с системой и базовой настройке OpenGL уже позаботились. У Роберта используется OpenGL 1.0/1.1, но перейти на 2.0 не представляет никакой сложности. Стоит так же заметить, что никаких дополнительных средств для рисования не предоставляется, рисовать придется все тем же OpenGL ES АПИ.
AndEngine
AndEngine это настоящий 2d движок для создания игр. Движок поддерживает несколько расширений, среди которых и physicsbox2d для создания физики. Сам движок довольно популярный с открытым кодом (Java). Все средства движка можно использовать для создания обоев. Есть много примеров, которые являются единственной «документацией» движка. Если надо что-то сделать — вспоминаем в каком примере мы это видели и смотрим как это там реализовано. Так же есть форум, где можно попросить помощи (форум активный, быстро помогают).
Теперь о плохом.
Версии у движка 2. Первая (GLES1) использует OpenGL ES 1.0/1.1, вторая (GLES2) — ES 2.0. АПИ в GLES2 намного продвинулось вперед, поэтому лучше использовать GLES2, но мы тогда теряем пользователей Андроида версии 2.1 (GLES2 на нем не работает, a живые обои замечательно работают). Мне удалось запустить обои используя обе версии AndEngine. Но в GLES1 сразу же столкнулся с невозможностью изменить настройки камеры при изменении ориентации экрана (приходится изменять масштаб сцены по одной из осей, в GLES2 АПИ это позволяет).
Движок создан для 2d игр, поэтому никакого АПИ для поддержки 3d не предоставляется (никто не запрещает использовать OpenGL напрямую). Так же отсутствуют казалось бы такие нужные функции как рисование окружности и даже треугольника. Движок больше ориентирован на спрайты. Добавить функцию рисования той же окружности, так чтобы она вписывалась в систему классов движка довольно тяжело — никакой документации нет. Поэтому придется перелопатить много кода и разбираться что к чему.
Заключение.
Начнем делать выводы с того, что я приведу пример: один кадр созданных мной обоев с помощью Canvas рисуется за 17мс на Kindle Fire (6 из которых «лочится» и «анлочится» канва). Это много, для заполнения фона текстурой 16х16px, вывода изображения 350х180px и отрисовки 4х окружностей различной толщины и радиуса. При использовании OpenGL это делается на порядок быстрее. О хорошем: код отрисовки я написал за час с небольшим, 17мс немного — анимация плавная.
В остатке.
Используйте канву, если вам не важно 3d, если ваша анимация не очень сложна и не требует больших вычислительных ресурсов.
Используйте AndEngine, если вы делаете 2d обои. Изучив примеры и почитав форум, вы быстро приступите к созданию вашей анимации, а дополнительные расширения движка позволят вам с легкостью внедрить в вашу анимацию эффектные решения (физика, система частиц и др.)
Используйте GLWallpaperService Роберта Грина. Если вы хорошо владеете OpenGL и делаете 3d обои, он позволит вам, не отвлекаясь на рутину, быстро приступись к кодированию вашей анимации.
Вы также можете адаптировать многие ваши любимые графические OpenGL движки для создания живых обоев. Используя код GLWallpaperService и/или AndEngine в качестве примера.
Как сделать живые обои на Android и iOS самому
Персонализация обоев смартфона — это эффективный способ сделать домашний экран уникальным и непохожим на домашние экраны других пользователей. Конечно, есть очень красивые штатные заставки, миллиарды красивых фото в интернете и тысячи фотографий в самом телефоне, но именно видеообои производят ни на что не похожий эффект. Живые обои, которые перемещаются как GIF при нажатии и удерживании, делают работу с Android или iPhone еще более интересной. И да, вы правильно прочитали, что установка таких обоев возможна на любом смартфоне. Что удивительно, на iOS сделать это даже проще. Но я расскажу о процессе создания их на обеих платформах.
На заставку можно поставить не только статичные, но и анимированные обои.
Живые обои для телефона своими руками
Некоторые смартфоны поставляются со встроенными живыми обоями, но создание собственных живых обоев из любого имеющегося у вас видео занимает всего несколько минут. Подумайте, насколько интересно было бы каждый раз при включении телефона видеть водопад, который вы сняли в поездке, или капли воды, красиво падающие с крыши.
Звучит заманчиво? Тогда сейчас расскажу, как это сделать, и начну с описания процесса на Android. В этом случае надо будет скачать приложение, а на iOS все делается штатными средствами.
Как сделать живые обои на Android
Android не предлагает встроенных средств для создания живых обоев, но вы можете получить доступ к аналогичным функциям через сторонние приложения, доступные в Google Play. Поиском можно найти огромное количество таких приложений, но к наиболее известным относятся следующие:
Некоторые приложения не просто создают обои, но и автоматизируют процесс их установки, делая все за вас после того, как вы внесете необходимые настройки. Среди интересных приложений можно так же назвать 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.
Приложения для установки живых обоев на андроид: ТОП-5 лучших
Какая бы картинка не стояла на экране телефона, со временем она непременно наскучит. Конечно, изображение можно поменять на любое другое. Но и оно скоро надоест. Выход есть. Смартфоны с операционной системой Android оснащены настолько широкой функциональностью, что их возможности практически безграничны. И одна из них — эта замена статической картинки обоев на короткое видео.
Пять бесплатных приложений для установки живых обоев на Андроид
Изображения на экране телефона, которые постоянно двигаются называются «живыми обоями». Включаются они встроенными инструментами или через программу, предназначенную для установки видео на обои. Мы подобрали для вас пять лучших и бесплатных приложений для установки живых изображений на Андроид.
5. Матрица живые обои
Программа ставит живые обои в формате матрицы (постоянно движущиеся столбцы). Человек сам выбирает символы, которые будут показаны, меняет их цвет или скорость падения, изменяет цвет фона, а также сменяет направление.
«Матрица» — одно из самых простых и удобных приложений. Мало весит и быстро устанавливается. А самое главное, в приложении нет навязчивой рекламы. Интерфейс полностью русифицирован.
Примечательно, что видеоряд можно установить не только на экран рабочего стола, но и на заставку.
4. Video Wallpaper – Установить видео как обои
Ещё одно удобное приложение для замены статичных картинок на видеоряд. Функционала программы вполне достаточно для установки живых обоев на Андроид.
Пользователю предлагается огромный выбор возможностей: обои из сохранённых на устройство файлов, онлайн видеообои. При этом здесь есть онлайн-каталог (абстракция, животные, комичные, праздничные и другие), что делает подбор анимации гораздо удобнее.
Кроме этого, по желанию в меню можно выбрать 4К, 4D или 3D картинки. А если пользователь ищет что-то конкретное, ему поможет строка поиска.
3. Настоящий аквариум — живые обои
Что может быть более завораживающим, чем наблюдение за неспешным движением рыбок в аквариуме? И если прямо сейчас вы не можете позволить себе покупку живых рыб, приложение «Настоящий аквариум» станет хорошей альтернативой. После установки программы пользователю предлагается на выбор более 10 различных аквариумов и более 15 видов рыб, которые можно установить в качестве подвижных изображений на рабочий стол мобильного.
Кроме этого, при помощи дополнительных настроек можно включить:
- Вибрацию – телефон вибрирует при касании на рыбку;
- Встряхивание – рыбы пугаются, если встряхнуть телефон;
- Скорость – изменяется скорость движения;
- Звук пузырьков – фоновый звук лопающихся пузырьков воды;
- Свет – лучи света через воду.
Приложение для установки обоев на телефон «Настоящий аквариум» предоставляется бесплатно. Реклама периодически появляется, но не мешает стабильной работе.
2. GRUBL™: живые обои 4Κ и рингтоны
Программа «GRUBL™» предназначена не только для установки картинок на телефон, но и для добавления мелодий. При этом звук можно изменить как на входящем звонке, так и на будильнике или уведомлениях.
- Автосменщик – анимация меняется при каждом включении экрана.
- Поиск по цвету – позволяет подобрать варианты анимации по цвету.
- AMOLED -настоящий цвет для движущихся 3D анимаций.
- Своё фото – можно установить любой свой видеоролик.
- Визуальные эффекты – позволяет накладывать поверх ролика дополнительный эффект (дождь, снег).
Значительное отличие приложения от аналогичных – это возможность выбора двух различных вариантов живых обоев одновременно. Первые включаются в режиме рабочего стола, вторые – в режиме заблокированного экрана.
1. ЖИВЫЕ ОБОИ блокировка, рингтоны — W. Engine
Последнее в списке классных приложений – это «ЖИВЫЕ ОБОИ блокировка, рингтоны — W. Engine». Как и предыдущее приложение, оно позволяет заменить картинку на экране мобильного, установить мелодию звонка, заменить звук будильника, уведомлений и сообщений.
Помимо возможности отсортировать анимации по категориям, что могут и любые другие программы, функционал включает:
- Сохранение аккаунта для использования программы на других устройствах;
- Добавление понравившихся вариантов в «избранное»;
- Предварительный просмотр;
- Публикация собственного контента (которым можно поделиться с другими пользователями);
- Автоматическая смена двигающихся изображений.
Программа бесплатная. Но при желании, пользователь может оплатить аккаунт, и тогда возможности будут совсем безграничны.
Итак, описанные программы помогут быстро и легко установить видео на обои. Всё, что остаётся пользователю, это наслаждаться полученным результатом.