Живые обои на Андроид как сделать?
Андроид живые обои. Как делать?
Содержание
Независимо от того, какие обои вы задумали сделать, существуют 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 в качестве примера.
Метки:
- AndEngine
- Canvas
- GLWallpaperService
- OpenGL
- Андроид
- живые обои
habrahabr.ru
Как создать собственные живые обои на Android. Создаем заставку Android сами. Live Wallpapers для Android самостоятельно.
Какой владелец телефона украшением своего зверька не озабочен? Все стремятся как-то под себя девайс переделать. Кто-то чехольчик красивый покупает. Кто-то рингтон ставит поинтереснее. И конечно же, очень многие заставку меняют. Выбирают покрасивее да поэкзотичней.
Но когда заставку ставишь, обнаруживается, что много заставок. А того, что хочется – нету. И поэтому приходится создавать самому. Благо – процесс этот не хитер и много времени не займет. Рассмотрим несколько вариантов.
Сайт http://www.ownskin.com/. Как действовать? Регистрируетесь на сайте. Заходите. И у вас появляется мини-студия. Можно ставить основной рисунок (который будет панорамный на несколько экранов). Можно движущиеся рисунки/фото загружать, задавая скорость движения и направление. Можно мелкие стикеры с движением и звуками вешать. Эффекты задавать, волны, ветер, огонь. Можно добавлять телефонные значения – часы, заряд батарейки, календарь, компас. Текст можно писать. Малый джентельменский набор. Все объекты – картинки, звуки, стикеры можно брать свои или из библиотеки сайта. Библиотека не очень велика, прямо скажем.
Засада в следующем шаге. Я, признаться, думал, что сайт сразу мне сгенерирует обои. Нет, не так просто. Надо проинсталлировать программку сайта на телефон, затем войти, снова авторизоваться, и из программы загрузить свои же обои. Не очень удобно, но все же не смертельно. Все это бесплатно.
Вариант следующий – анимированный gif. Это вариант попроще, на выходе вы получите картинки движущиеся. Впрочем, если найдете красивые готовые gif файлы – может быть круто. Итак – вам сначала нужно получить анимированный gif файл. Как это сделать? Куча программок в интернете, которые из нескольких фото делают gif. Например – здесь http://gifovina.ru/. Загрузили несколько фото – на выходе получили один файл. Где фото меняются в каком-то интервале. Или есть программка Gifinator. В ней можно непосредственно с телефона наделать фото и тут же из них gif слепить.
И вторым шагом Вам потребуется программка AnimGIF Live Wallpaper. Вы инсталлируете ее, входите в Live Wallpaper – выбираете там AnimGIF. В AnimGIF выбираете ваши gif файлы (можно много, можно один единственный), ставите скорость смены гифов (внимание – это скорость смены разных гифов, скорость смены кадров в одном гифе надо задавать во время создания гифа!! Ставьте низкую, чтоб мелькания не было, или высокую – если хотите что-то типа мультика получить). И вуаля – на экране телефона крутятся любимые кадры.
Способ этот быстрее вроде бы – но бедней по возможностям, да и получить красоту на выходе не так просто. У меня вот лично то разрешение скверное получалось, то мелькали картинки слишком быстро. Впрочем – глубоко в дебри я не лазил, попробовал и забыл. Все указанное – бесплатно можно сделать.
Есть еще программка Extreme Live Wallpaper. Функционал заявлен примерно тот же, что и на ownSkin. Картинки, заряд батарейки, возможность прямо с камеры загружать. Множество готовых шаблонов. Эти шаблоны меня и отпугнули – больно мультяшные, для детей. Есть платная и бесплатная версия программы.
И еще одна программка. Сайт http://www.droidappgen.com/. Заявляют два режима, Diapo и Motion. Смена картинок. Больше ничего в заявленном функционале не увидел. Поэтому пробовать не стал.
Ну и само собой, есть и трудный путь к успеху. Начать под Android программировать, и написать свои обои. Хоть и много программирования в моей жизни – а я этим заниматься не стал. Хотя, возможно, результат был бы лучше. Творите, выдумывайте, пробуйте.
Alexander Chernykh
psychomedia.org
Создаем живые обои для Android своими руками с помощью OwnSkin DYI
Я регулярно представляю вам лучшие живые обои для Android и при этом стараюсь подбирать такие обои, которые вы могли бы настроить по своему вкусу. Но, как известно, самая лучшая вещь – это вещь, созданная своими руками. Поэтому сегодня я хочу познакомить вас с программой OwnSkin DYI, с помощью которой вы сможете создавать собственные живые обои для Android устройств.
Бесплатная программа OwnSkin DYI позволяет скачать из своей онлайн библиотеки сотни разнообразных готовых тем вместе с виджетами и с помощью встроенного редактора создать на их основе собственные живые обои. Мало того, что программа абсолютно бесплатна – она еще и не требует наличия root прав на вашем устройстве.
Своими собственными темами вы можете в дальнейшем поделиться с другими пользователями программы.
Главное окно программы позволяет находить, выбирать, скачивать и устанавливать на устройство понравившиеся вам темы. Все установленные вами темы можно будет затем найти на вкладке «My Store» главного окна программы. Выбрав тему, вы можете просматривать ее, смотреть комментарии, оценки, статистику. Можно также удалять темы и делиться ними с другими пользователями.
С помощью кнопки «Open/Edit », расположенной в нижней части окна, вы можете открыть тему для настройки и изменения во встроенном в программу редакторе.
Перейдя в режим редактирования, вы увидите панель управления в верхней части окна, на котором расположены разнообразные инструменты, с помощью которых вы можете перемещать, вращать, менять размеры и анимировать любой элемент редактируемых живых обоев.
Кроме того вы можете менять прозрачность, цвет объектов и даже назначать им запуск любого установленного в вашей системе приложения. С помощью кнопки настроек можно блокировать, разблокировать и удалять элементы ваших живых обоев.
В нижней части окна редактора отображается номер рабочего стола, с которым вы в настоящий момент работаете. Кнопки со стрелками предназначены для переключения между экранами, а с помощью кнопки «play» вы можете посмотреть, как работают ваши собственные живые обои.
Когда вас устроит полученный результат, перейдя в меню программы, вы можете сохранить собственное произведение (нажав на Save).
Видеоролик, демонстрирующий работу с программой OwnSkin DYI:
Скачать программу для создания живых обоев можно на официальном сайте разработчика по этой ссылке.
Похожие материалы:
Живые обои для Android. Дом с привидениями HD
Живые обои для Android. Неоновый микрокосм
Neon Clock — красивые часы, индикатор батареи и компас.
Живые обои для Android. Swirling Ornaments
Живые обои для Android. Пруд. (Скачать)
Теги:
www.4tablet-pc.net
Создаем живые обои для Android своими руками с помощью OwnSkin DYI
Я регулярно представляю вам лучшие живые обои для Android и при этом стараюсь подбирать такие обои, которые вы могли бы настроить по своему вкусу. Но, как известно, самая лучшая вещь – это вещь, созданная своими руками. Поэтому сегодня я хочу познакомить вас с программой OwnSkin DYI, с помощью которой вы сможете создавать собственные живые обои для Android устройств.
Бесплатная программа OwnSkin DYI позволяет скачать из своей онлайн библиотеки сотни разнообразных готовых тем вместе с виджетами и с помощью встроенного редактора создать на их основе собственные живые обои. Мало того, что программа абсолютно бесплатна – она еще и не требует наличия root прав на вашем устройстве.
Своими собственными темами вы можете в дальнейшем поделиться с другими пользователями программы.
Главное окно программы позволяет находить, выбирать, скачивать и устанавливать на устройство понравившиеся вам темы. Все установленные вами темы можно будет затем найти на вкладке «My Store» главного окна программы. Выбрав тему, вы можете просматривать ее, смотреть комментарии, оценки, статистику. Можно также удалять темы и делиться ними с другими пользователями.
С помощью кнопки «Open/Edit », расположенной в нижней части окна, вы можете открыть тему для настройки и изменения во встроенном в программу редакторе.
Перейдя в режим редактирования, вы увидите панель управления в верхней части окна, на котором расположены разнообразные инструменты, с помощью которых вы можете перемещать, вращать, менять размеры и анимировать любой элемент редактируемых живых обоев.
Кроме того вы можете менять прозрачность, цвет объектов и даже назначать им запуск любого установленного в вашей системе приложения. С помощью кнопки настроек можно блокировать, разблокировать и удалять элементы ваших живых обоев.
В нижней части окна редактора отображается номер рабочего стола, с которым вы в настоящий момент работаете. Кнопки со стрелками предназначены для переключения между экранами, а с помощью кнопки «play» вы можете посмотреть, как работают ваши собственные живые обои.
Когда вас устроит полученный результат, перейдя в меню программы, вы можете сохранить собственное произведение (нажав на Save).
Видеоролик, демонстрирующий работу с программой OwnSkin DYI:
Скачать программу для создания живых обоев можно на официальном сайте разработчика по этой ссылке.
Похожие материалы:
Живые обои для Android. Дом с привидениями HD
Живые обои для Android. Неоновый микрокосм
Neon Clock — красивые часы, индикатор батареи и компас.
Живые обои для Android. Swirling Ornaments
Живые обои для Android. Пруд. (Скачать)
Теги:
www.4tablet-pc.net