AIMP for Android v2.50 — Темы
Рубрики: Информация | 10.10.2016
Недавно стартовало публичное бета-тестирование новой версии AIMP для Android, я хотел бы разобрать вопрос создания собственных тем для плеера, поскольку редактора тем для мобильного AIMP еще в глубокой разработке — собирать тему придется вручную. Итак.
В первую очередь, хочу заметить, что тема — это частный случай скина, сильно урезанный по возможностям. В нашем случае, тема позволяет изменить внешний вид элементов и их положение в пределах окна, так же вы можете безболезненно создавать и удалять элементы, что не имеют имени — атрибута name.
В качестве примера я взял скин Pandemic из первой версии плеера. Давайте перенесем его на v2.50.
Структура скина
Скачиваем оригинальный скин Bliss_Dark, и открываем его как zip-архив в любом удобном вам архиваторе. Вот что мы видим внутри:
На верхнем уровне расположены:
- skin.png — карта текстур, в ней расположены абсолютно все текстуры, что используются в теме
- skin.xml — содержит информацию о скине, а так же коллекцию общих цветов.
Следующий уровень — папка Views. В ней содержатся XML-файлы с описанием макета каждого конкретного экрана, вкладки, элементов и т.п. Обратите внимание на подпапки — phone, tablet, а так же подпапки внутри них. Как вы, наверное, догадались: эти папки содержат макеты для определенных типов устройств и ориентации экрана.
Как это работает? Рассмотрим пример: планшет в ландшафтном режиме, при загрузке экрана движок плеера сначала попробует загрузить нужный XML-файл из папки Views/Tablet/Landscape, если его там нет — загрузит из корня — из папки Views.
- common.playlist.xml — макет экрана с плейлистом
- common.playlist.group.xml — макет группы внутри плейлиста в обычном режиме
- common.playlist.group.delete.xml — макет группы внутри плейлиста в режиме удаления
- common.playlist.group.sort.xml — макет группы внутри плейлиста в режиме сортировки
- common.playlist.item.xml — макет строки внутри плейлиста в обычном режиме
- common.playlist.item.delete.xml — макет строки внутри плейлиста в режиме удаления
- common.playlist.item.sort.xml — макет строки внутри плейлиста в режиме сортировки
- dspmanager.xml — макет окна менеджера звуковых эффектов
- dspmanager.basic.xml — макет вкладки «общее»
- dspmanager.equalizer.xml — макет вкладки «эквалайзер»
- filedialog.files.xml — макет окна добавления файлов
- filedialog.files.item.xml — макет строки списка файлов
- filedialog.files.item.checked.xml — макет строки списка файлов с возможность отметить ее галочкой
- filedialog.save.xml — макет окна сохранения файлов
- fileinfo.xml — макет окна «информация о файле»
- fileinfo.basic.xml — макет вкладки «общая информация о файле»
- fileinfo.lyrics.xml — макет вкладки «стихи»
- main.xml — макет главного окна программы
- main.player.xml — макет главного экрана программы
- navigator.xml — макет навигационного меню, что появляется с левой стороны экрана
- navigator.command.xml — макет строки с командой
- navigator.separator.xml — макет разделителя
- navigator.tab.xml — макет строки с вкладкой плейлиста
- navigator.tab.new.xml — макет строки с кнопкой «добавить новую вкладку»
- sleeptimer.xml — макет окна таймера сна