What is android live wallpaper
Каталог «живых» обоев
(Live Wallpaper)
Правила темы. Читать обязательно!
- Тема предназначена ТОЛЬКО для публикации «живых» обоев (live wallpaper) в формате *.apk. Любые вопросы и обсуждения КАТЕГОРИЧЕСКИ запрещены, нарушители будут НАКАЗАНЫ!
- Ссылки на темы обсуждения и поиска обоев вы найдёте под заголовком этой темы. Все вопросы по конкретным обоям задавайте только в QMS автора поста.
- Порядок действий перед публикацией обоев:
– Используя поиск по теме(справа вверху страницы или слева внизу), обязательно проведите проверку по названию обоев . Если эти обои уже опубликованы здесь в такой же версии, воздержитесь от публикации — все дубликаты будут удалены. Если обои ещё не опубликованы, оформляйте свой пост по шаблону, принятому в теме (см. ниже) .
– Если вы публикуете новую (обновлённую) версию обоев и НЕ являетесь автором поста с предыдущей версией , тогда рядом с названием обоев ещё обязательно укажите: «обновление» и дайте ссылку на оригинальный пост с предыдущей версией обоев.
– Если вы публикуете новую (обновлённую) версию обоев и являетесь автором поста с предыдущей версией , просто обновите (перезалейте) контент в том своём посте и создайте в теме сообщение с информацией об обновлении и ссылкой на ваш пост с обоями. - Публикация скриншотов:
– Запрещена публикация более 1 изображения оригинального размера. При необходимости опубликовать большее количество используйте спойлеры или превью (все картинки в одной). Как прятать под спойлер с ПК и в мобильной версии форума / в оф. клиенте форума / в неоф. клиенте
– Изображения размером более 500 Кб перед публикацией необходимо преобразовать в формат *.jpg с более высокой степенью сжатия или уменьшить их разрешение. Запрещено использование формата *.bmp. Не забывайте, что многие просматривают форум, используя небыстрый и недешёвый мобильный интернет! - Если вы хотите поблагодарить пользователя за опубликованные обои, не пишите сообщение типа «Спасибо! Ты супер!», просто нажмите кнопку
рядом с его репутацией. Если у вас пока нет 15-и полезных постов, используйте для поднятия репутации кнопку
(см. пп. 5.1-5.2 правил форума).
. мини-картинка превью (по желанию; размер не более 128×128). [size=3][color=»darkblue»][b]Полное название, версия[/b][/color][/size]
[b]Автор:[/b] указываем имя (ник) автора
[b]Ссылка на первоисточник:[/b] указываем, откуда скачали (ссылкой)
[b]Ссылка на оригинальный пост:[/b] (если публикуете новую версию обоев и не являетесь автором поста с предыдущей версией; в противном случае удалите эту строчку из шаблона)
[b]Русифицированы:[/b] да/нет
. один скриншот-превью, остальные под спойлер.
[b][color=»darkblue»]Скачать:[/color][/b] сам apk-файл
- Как это выглядит:
- Основной источник фишинга – по сути, ни в чем не повинные push-уведомления, появляющиеся при установке тех или иных приложений. Их наличие свидетельствует лишь о том, что разработчик заключил контракт с рекламодателем посредством системы, базирующейся на сайте Airpush.com. Сама по себе она легальна и предлагает пользователям товары и услуги, не докучая им назойливыми баннерами и рекламными блоками, наличием которых зачастую отличаются бесплатные версии игр и приложений.Проблема в том, что сами объявления порой совершенно не те, за кого себя выдают. И здесь необходимо держать ухо востро. Уже притчей во языцех стало предложение обновить браузер Opera Mini – и совершенно не обязательно, что он у вас установлен, задача-то перед ним стоит совсем другая. Чтобы избежать опустошения своего счета, необходимо запастись соответствующим оснащением.
- Давайте попробуем разобраться и определиться раз и навсегда, что же на самом деле представляет из себя virus AirPush . Ниже вы видите скриншот, на котором антивирус Dr.Web обнаружил not a visrus Airpush :
- Так как большинство пользователей не особо любят покупать программы, единственный способ заработать разработчикам – это размещать рекламу внутри приложений (от сервиса airpush.com). Разработчик не имеет никакого отношения к транслируемой рекламе. Реклама «внедряется» в приложение сервером airpush.com, с которым заключил контракт разработчик. Сама по себе реклама безобидна и даже легальна, за исключение той, что сделана со злым умыслом. В договорах, которые заключают разработчики с airpush.com, оговариваются те категории рекламы, которые разработчик согласен «видеть» в своём приложении. Т. е. в случае чего имеет смысл связываться с разработчиком и информировать его о потенциальном невыполнении договора со стороны airpush.com – это как раз в злостных случаях всяческих порно, вирусов, съёма денег. Вряд ли нормальный разработчик имел в виду (хотел) такую «рекламу».
Наверняка все вы видели рекламные объявления: «Вам необходимо обновить браузер Opera Mini» или «Ваша версия Skype больше не будет работать». И совсем не обязательно, установлены у вас Skype или Opera, для мошенников это не имеет никакого значения. Здесь смысл один: получить от вас клик по данному объявлению и лишить вас денежных средств со счета мобильного телефона. - Поэтому будьте бдительны. Никогда и ничего не обновляйте из-под установленной программы и никогда не переходите по сомнительной рекламе, какой бы заманчивой она ни была.Главное правило: будьте внимательны, не торопитесь нажимать «ОК» или «Продолжить» при установке программ. Быть начеку также следует, если приложение подозрительно небольшого размера. Обнаружив в списке разрешений отправку SMS, подумайте, действительно ли требуется данная функция с учетом сферы применения программы.
- В качестве превентивной меры можно воспользоваться популярным решением от известной компании «Доктор Веб» – мобильным антивирусом, имеющим как платную, так и бесплатную версии. Проверяя каждое устанавливаемое приложение, он подаст тревогу, обнаружив троянскую программу, отсылающую платные SMS на короткие номера. А AirPush Detector – простая утилита для обнаружения рекламы в статус-баре – быстро покажет, какие из установленных програм портят вам нервы. А что с ними дальше делать – решать вам.
- Все вопросы касательно AIRPUSH вы можете задать в профильной теме Внимание! Мошенничество с СМС на Android, а дополнительные способы борьбы с рекламой найдете в Инструкциях и решениях вопросов с рекламой на экране и статус баре, с смс-вымогателями и блокировщиками всех видов.
- Чтобы насладиться видом «живых обоев» в полной мере, используйте эту утилиту, убирающую с экрана все значки: Cleaner (Show Wallpaper).
- Приложения для установки разных обоев на каждый рабочий стол: GO Multiple Wallpaper + Mod / Five Wallpapers / MultiPicture Live Wallpaper.
- Хотите установить на рабочий стол GIF-картинку? Без проблем, используйте AnimGIF Live Wallpaper 2 Pro. А в LoopWall доступен и набор готовых красивых gif.
- Свой видеофайл как живые обои? Это реально: Video Live Wallpaper / Live Photo / Video Live Wallpaper Pro.
- Приложения для создания своих обоев: FreshCoat Wallpaper Creator / Live Wallpaper Maker / Цвет обоев / KLWP Live Wallpaper Maker / MagicFinger — Live Wallpaper DIY
- PRO-версии «живых обоев» лучших разработчиков, переведенные на русский язык
- Обои с возможностью визуализации музыки: Audio Glow / Celestial Bodies / Jungle of Flowers / Fireworks / Jungle of Flowers 3D / Cubic Patterns / Popular LWP / Celestial Bodies Nebula & Planets Mods / 3D Equalizer / Speaker Pro / BLW Music Visualizer Wallpaper (Beautiful Live Wallpaper) / Galaxy Journey LWP / Morphing Galaxy Visualizer
- «Живые обои» в стиле Material Design: Minima Pro / Stack Material / Material Design Live Wallpaper / Material Style Tiles / Mountains Now / Chrooma / Simplexity / Chromatica Material Wallpaper / Live Material Design / Chameleon Color Adapting LWP / Chrooma Floats / Material Circle
Сообщение отредактировал Washerron™ — 19.08.20, 19:42
Источник
Создание 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 и как на нем рисовать — за рамками этой статьи, ниже есть простой пример.
Методы жизненного цикла Engine
Все методы жизненного цикла, кроме onSurfaceRedrawNeeded , не требуют немедленной перерисовки. Поэтому хорошим тоном будет перерисовку поставить в очередь.
Обратите внимание на onSurfaceRedrawNeeded, который передает нам вызов одноименного коллбэка SurfaceHolder, который возникает при изменении размера и аналогичных событиях. Этот колбэк позволяет выполнить перерисовку немедленно, не допустив показа пользователю старой (и уже неверной) картинки. Система гарантирует, что пока не произошел возврат из этого метода, вывод на экран будет приостановлен.
Scheduler
Я люблю переопределять Handler, а не гонять в нем Runnable. На мой взгляд, так изящней.
В случае, если у вас анимация или регулярное обновление, то нужно будет сделать регулярную постановку сообщения в очередь (postAtTime() и postDelayed() вам в помощь). Если данные обновляются эпизодически, достаточно для обновления вызвать planRedraw() .
Service & Engine
Собирается эта марешка из Service и 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 году при таком качестве документации?!
Источник