Set wallpaper для android

Создание 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 вот так:

Читайте также:  Андроид систем recovery 3e

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 смартфон

Как правило, пользователи устанавливают на свои устройства статические изображения: их проще найти и легче использовать. Но живые обои выглядят более впечатляюще. Поэтому стоит рассмотреть вопрос о том, как установить такие обои на аппарат с Android.

Перед установкой вы должны знать, что живые обои существенно уменьшают время автономной работы, поскольку негативно влияют на аккумулятор. Даже специальные режимы энергосбережения не особенно помогают.

Тем не менее, если вы твердо решили поставить такие обои, мы готовы помочь. Только учтите, что на разных смартфонах или версиях Android действия будут различаться в мелочах. Однако общая концепция будет неизменной.

Для использования живых обоев на смартфоне есть несколько путей: использование встроенного в систему контента, установка сторонних обоев и инсталляция приложения с живыми обоями. Мы рассмотрим все возможные варианты. Начнем с самого простого.

Читайте также:  Android режим не беспокоить избранные контакты

Использование встроенных обоев

Практически во всех современных смартфонах имеется некоторое количество живых обоев. Еще в первых версиях Android разработчики поставляли такой контент для пользователей. Но при этом прятали его довольно глубоко.

С тех пор почти ничего не изменилось. Мы найдем живые обои и установим их на рабочий стол. Для примера рассмотрим данный процесс на смартфоне Xiaomi Redmi 8 с установленной оболочкой MIUI и Android 10 на борту.

Шаг 1. Для начала требуется долгий тап по пустому месту на рабочем столе. Внизу появится лента с кнопками. Нужно тапнуть по иконке с надписью «Обои».

Шаг 2. Далее откроется список доступных обоев. Тапаем по категории «Живые обои».

Шаг 3. После этого выбираем требуемую картинку и нажимаем на нее.

Шаг 4. Внизу жмем на кнопку «Применить».

На этом процедура завершена. Теперь нужно выйти из настроек и посмотреть, насколько органично картинка вписывается в общую цветовую гамму. Если полученный результат вас чем-то не устроил, то можно выбрать другую картинку, используя все ту же инструкцию.

Внимание! Если ваш смартфон относительно слабый, установка живых обоев может привести к тормозам и фризам. Для нормального функционирования такой картинке требуется изрядное количество ОЗУ и довольно мощный процессор. Причем, процессор будет работать постоянно. Даже если дисплей будет полностью выключен.

Использование приложения

Найти анимированные картинки на различных сайтах можно. Но далеко не факт, что они будут двигаться после установки на рабочий стол аппарата. Поэтому самый простой ход – скачивание соответствующей программы с нужным контентом.

В Google Play большое количество подобных продуктов. Но мы выберем Live Wallpapers — 4K Wallpapers, как самое адекватное приложение. Сейчас рассмотрим особенности работы с ним. Итак, начнем с самого простого – установки.

Шаг 1. На рабочем столе аппарата тапаем по пункту «Google Play».

Шаг 2. Далее вводим в верхней строке «Live Wallpapers» и жмем кнопку с изображением лупы.

Шаг 3. Тапаем по нужной записи в результатах поиска.

Шаг 4. Нажимаем на кнопку «Установить».

Шаг 5. Дожидаемся окончания процесса инсталляции, возвращаемся на рабочий стол и запускаем программу при помощи иконки.

Шаг 6. Запустится приветственный экран. Здесь жмем «Continue».

Шаг 7. Теперь в категории «Live» (находится в верхней строке) ищем нужную картинку и тапаем по ней.

Шаг 8. Нажимаем на круглую кнопку со стрелкой для загрузки обоев.

Шаг 9. В следующем меню выбираем пункт «Single Mode».

Шаг 10. Нажимаем кнопку «Set Wallpaper».

Шаг 11. В следующем окне выбираем «Home Screen» если требуется установить картинку на рабочий стол, либо же «Home screen and lock screen», если хотите, чтобы картинка отображалась еще и на экране блокировки.

Вот и все. Теперь можно выходить из приложения и проверять, как картинка смотрится на дисплее смартфона. Если она вас чем-то не устроила, то ее всегда можно поменять, используя предыдущую инструкцию (кроме пунктов, посвященных установке из Google Play).

Внимание! В Google Play имеется большое количество программ, предназначенных якобы для установки живых обоев. Но они являются фишинговыми и единственная их задача – сбор сведений о пользователе. Так что бездумно устанавливать приложения оттуда не стоит. Лучше следуйте нашим рекомендациям.

Заключение

На просторах интернета большое количество ресурсов, предлагающих скачать живые обои бесплатно и без регистрации. Как правило, таким сайтам доверять нельзя. Поэтому мы не включили их в нашу инструкцию.

Читайте также:  Разблокировка лицом для андроид

Впрочем, подавляющему большинству пользователей хватит возможностей операционной системы Android или рассмотренного выше приложения. Только выполнять все действия нужно в соответствии с предоставленной инструкцией.

Источник

Set wallpaper для android

Image 2 Wallpaper
версия: 2.1.1

Последнее обновление программы в шапке: 04.02.2017

Краткое описание:
Установка обоев на экран без потери качества.

This application set the picture to the wallpaper with/without resizing.
Select a picture from the gallery, resize it, and set to the wallpaper.

And you can activate this application via the «Intent» as well. Select the picture in the gallery or another app, and «share» it to this application.

* Thank you for over 1 million downloads!

Features:
— Support both phone and tablet.
— Resize the image to fit to wallpaper width, height, or display width. Or set without resizing (Dot by Dot, DbD).
— Align the image horizontally and vertically. Left/center/right and top/center/bottom.
— Tile the images or left margins(border).
— Set the color of margins.
— Rotate the image.
— Aware the height of the status bar and the navigation bar.
— Save the image to external storage.
The saving location is «/sdcard/wallpaper». You will find the saved image with «FileManager» app etc.
— [Advanced] Crop the image.
— [Advanced] Set an arbitrary position and/or resizing scale.
— [Advanced] Flip the image holizonatally and/or vertically.
— [Advanced] Set another image to margins (background.)
— [Advanced] Apply some image effects.

* Advanced features can be used in «Advanced Mode».
* Some preferences can be set by «Menu»-«Preference.»
* Cropping use a lot of memories. If you get an out of memory error, please crop the image with the gallery etc. before this application.

* If you want to fix (no scrolling) the wallpaper or to display the whole image without margins and cropping, please try «Image 2 Live Wallpaper beta». It can be opened from More from developer.

Disclaimers:
— No wallpaper included.
— Live wallpaper is not supported.

Samsung Galaxy users prior to S3:
With the default home app, the wallpaper is portrait and not scrolled by default. To set a landscape mode, open a menu with the menu button, and change the preferences.
Galaxy S3 and newer (TouchWiz UX) doesn’t support landscape mode.

About SMS attached image:
This application doesn’t have READ_SMS permission, so can’t read the image attached to the SMS. Please save it to the external storage, and open it.

Русский интерфейс: Да

версия: 2.0.3 Rus Ad-Free Image 2 Wallpaper (Пост filippova #31601593)
версия: 2.0.2 //4pda.to/forum/d…_Wallpaper_v.2.0.2.apk
версия: 1.9.3 //4pda.to/forum/d…_2_Wallpaper_1.9.3.apk
версия: 1.9.0 noAds 2.3+ //4pda.to/forum/d…_Wallpaper_v.1.9.0.apk
версия: 1.6.9 //4pda.to/forum/dl/post/3027778/Image+2+Wallpaper+v1.6.9.apk
версия: 1.6.8 //4pda.to/forum/dl/post/2957956/Image+2+Wallpaper+v1.6.8.apk
версия: 1.6.7 Image 2 Wallpaper (Пост #21947744)
версия: 1.6.6 Image 2 Wallpaper (Пост #21810984)
версия: 1.6.5 //4pda.to/forum/dl/post/2911268/Image_2_Wallpaper_1.6.5.apk
версия: 1.6.4 //4pda.to/forum/dl/post/2659259/Image_2_Wallpaper_v1.6.4.apk
версия: 1.6.2 Image+2+Wallpaper.apk ( 409.12 КБ )

версия: 1.5.1 Image 2 Wallpaper.apk ( 384.07 КБ )

Сообщение отредактировал vovanKARPO — 04.02.17, 20:23

Источник

Оцените статью