Руководство по созданию Живых Обоев (Live Wallpaper) для Android

Статья является переводом материала «Android Live Wallpaper — Tutorial» Ларса Вогела.

Это руководство описывает создание живых обоев для ОС Android. Все описанные ниже примеры проверялись на работоспособность на Eclipse 4.2, версия Java 1.6 под ОС Android 4.1 (Ice Cream Sandwich).

1. Необходимый уровень знаний.

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

2. Обзор

2.1 Живые обои

Живые обои — анимированный, интерактивный фон домашнего экрана Android. Живые обои схожи с другими приложениями Android и могут использовать тот же самый функционал.

2.2 Как создать живые обои

Создание программы живых обоев необходимо начать с создания соответствующего xml-файла. Этот файл должен содержать описание приложения и может содержать ссылку на выбранную активность (activity), содержащую настройки живых обоев.

Также вы должны создать сервис (service), который должен быть расширением класса WallpaperService. На этом классе базируются все живые обои, установленные в системе. Необходимо реализовать метод onCreateEngine() и вернуть объект типа android.service.wallpaper.WallpaperService.Engine. Этот объект будет обрабатывать события, прорисовку и анимацию в течении жизненного цикла (life cycle) программы. Класс Engine определяет методы жизненного цикла, такие как onCreate(), onSurfaceCreated(), onVisibilityChanged(), onOffsetsChanged(), onTouchEvent() и onCommand().

Сервис требует разрешения (permission) android.permission.BIND_WALLPAPER в файле манифеста и должен быть зарегистрирован через фильтр намерений (intent-filter) для выполнения android.service.wallpaper.WallpaperService.

Вы также должны указать в файле AndroidManifest.xml использование функции android.software.live_wallpaper для вашего приложения. Это предотвратит установку вашего приложения на устройства, не поддерживающие живые обои.

2.2 Создание Намерения (intent) установки обоев

Вы должны использовать Намерение (intent) для установки обоев

 

3. Пример обоев для Android

Создайте новый проект под названием de.vogella.android.wallpaper. Не создавайте activity. Создайте папку /res/xml и файл mywallpaper.xml.

 

Этот файл содержит описание ваших обоев и иконку приложения. Вы также можете указать ссылку на activity, отвечающее за конфигурацию обоев. Этот ресурс будет вызван из AndroidManifest.xml.Вы также можете включить «android:thumbnail attribute», указывающий на изображение с миниатюрой работающих обоев.

Измените AndroidManifest.xml как показано ниже для определения вашего сервиса MyWallpaperService. Также укажите использование функции android.software.live_wallpaper.

 

Для хранения единичного рисуемого элемента создадим класс MyPoint.

Создадим новую активность. Создайте файл prefs.xml в папке res/xml

Создадим новую активность с именем MyPreferencesActivity.

Создадим следующий код для сервиса обоев.

Создайте следующую активность, использующую макет (layout) с единственной кнопкой (Button). Эта кнопка должна использовать свойство onClick для вызова метода onClick.

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

4. Исходный код

Исходный код проекта вы можете скачать отсюда.

Если вас заинтересовала тема создания живых обоев для Android, можете также изучить руководство от Кирилла Грушникова.

Добавить комментарий