Создание тем для андроид программы

Обновлено: 06.07.2024

Как разработчики Android, мы склонны в первую очередь фокусироваться на функциональности наших приложений. Однако одной функциональности достаточно редко хватает. В Google Play, где сегодня находится более миллиона приложений, внешний вид так же важен, как и функциональность, если не больше. Если вам трудно в этом поверить, я предлагаю вам быстро взглянуть на приложения в разделе "Топ чарты" в Google Play.

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

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

1. Создание стилей

Стили, очевидно, применяются к компонентам пользовательского интерфейса. Поэтому давайте начнем с создания новой пустой активности и добавления двух представлений в ее XML-файл макета.

Как видно из приведенного выше кода, свойства, такие как layout_width и layout_margin , явно включены в определение каждого представления.

Чтобы создать новый стиль для первого вида, щелкните его правой кнопкой мыши и выберите «Рефакторинг»> «Извлечь»> «Стиль».

Теперь вы увидите диалоговое окно, в котором вы можете указать имя стиля, а также выбрать атрибуты, которые должны быть в него включены. Пусть имя будет MyBox и выберите все атрибуты, кроме background .

Extract style
Extract style
Extract style

Когда вы нажмете OK, вы увидите, что код для первого вида изменился.

В представлении теперь есть атрибут style , который указывает на стиль MyBox . Вы можете взглянуть на определение стиля, открыв res/values/styles.xml.

Как только стиль был создан, его можно применить к любому виду. Например, вот как вы применили MyBox ко второму представлению:

С применяемыми стилями, вот как выглядят два вида в активности:

Two views with styles
Two views with styles
Two views with styles

2. Расширение стилей

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

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

Как вы могли догадаться, у MyBox.TEAL и MyBox.CYAN есть все свойства MyBox . В дополнение к этим, у них есть свойство android: background.

Второй синтаксис для создания производного стиля обычно называют явным синтаксисом. Он включает использование атрибута parent , значение которого задано как имя родительского стиля. Вот фрагмент кода, который определяет стиль под названием TealBox.

Применение производных стилей ничем не отличается от применения обычных.

Большинство разработчиков используют неявный синтаксис при расширении своих собственных стилей и явный синтаксис при расширении стилей платформы.

3. Создание тем

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

По умолчанию все приложения, созданные с использованием последней версии Android Studio, используют тему AppTheme . AppTheme является потомком известной темы AppCompat, большой и очень всеобъемлющей темы, которая может повлиять на внешний вид почти всех широко используемых представлений.

Вы можете найти определение AppTheme в styles.xml:

AppTheme использует Material Design. Поэтому для создания собственных тем, соответствующих спецификации Material Design, можно использовать AppTheme в качестве родителя. Кроме того, вы можете напрямую использовать Theme.AppCompat в качестве родителя.

Хотя вы всегда можете создавать темы, написав XML-код, помните, что это просто стили - в этом уроке я покажу вам, как использовать редактор тем для Android Studio, чтобы он сделал для вас всю тяжелую работу.

Чтобы открыть редактор тем, откройте меню «Сервис» и выберите Android> Редактор тем.

С правой стороны окна редактора тем вы можете не только управлять существующими темами, но и создавать новые. Левая сторона показывает вам предварительный просмотр результатов внесенных вами изменений в темы.

Theme Editor
Theme Editor
Theme Editor

Чтобы создать новую тему, нажмите раскрывающееся меню Тема и выберите вариант Создать новую тему.

В появившемся диалоговом окне укажите имя новой темы - MyTheme и нажмите OK.

Create new theme
Create new theme
Create new theme

На этом этапе styles.xml будет иметь новую строку, которая выглядит так:

Теперь изменим MyTheme с помощью редактора тем. Чтобы все было просто, в этом уроке мы будем изменять только значения атрибутов colorPrimary , colorPrimaryDark и colorAccent .

Чтобы изменить значение colorPrimary , нажмите кнопку colorPrimary. Редактор тем теперь покажет вам диалог, содержащий набор цветов. Выберите любой цвет, который вы хотите использовать, но убедитесь, что вы дали ему новое имя. Если вы забудете это сделать, редактор тем изменит цвет, используемый AppTheme .

Editing colorPrimary
Editing colorPrimary
Editing colorPrimary

Следуйте тем же шагам, чтобы изменить значения colorPrimaryDark и colorAccent . Редактор темы автоматически будет использовать цвет, который вы выбрали для colorPrimary , чтобы предложить соответствующие цвета для colorPrimaryDark и colorAccent .

Теперь определение MyTheme будет выглядеть так:

4. Применение тем

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

Следующий код создает обычную Button , Button без полей, цветную Button , Checkbox , RadioButton , Switch , Seekbar , TextView и EditText .

Со всеми новыми добавлениями макет будет выглядеть так:

Layout using AppTheme
Layout using AppTheme
Layout using AppTheme

Если вы прочитали спецификацию Material Design, я уверен, что вы можете сказать, что в настоящее время активность использует оттенки индиго для colorPrimary и colorPrimaryDark . Для colorAccent используется оттенок розового. Это цвета по умолчанию, указанные в Android Studio. Вы можете найти их шестнадцатеричные эквиваленты в res/values/colors.xml вашего проекта.

Чтобы применить MyTheme , тему, созданную нами на предыдущем шаге, к вашей активности, откройте файл манифеста вашего проекта и добавьте атрибут android:theme в определение активности. Задайте значение @style/MyTheme .

Аналогично, вы можете применить тему ко всему вашему приложению, установив значение атрибута android: theme в определении приложения в @style/MyTheme .

Если вы сейчас посмотрите на свою активность, то она будет выглядеть совсем по-другому.

Layout using MyTheme
Layout using MyTheme
Layout using MyTheme

Заключение

В этом уроке вы узнали, как создавать и применять пользовательские стили и темы Android. Не стесняйтесь использовать эти знания, чтобы придать новые и лучшие виды вашим приложениям. Однако старайтесь не слишком увлекаться - большинство пользователей Android сегодня так привыкли к Material Design, что отклонение от его рекомендаций может их раздражать.

Чтобы узнать больше о стилях и темах, я предлагаю вам ознакомиться с руководством по стилям и темам.

темы на андроид

Купив новое устройство – пользователь начинает настраивать его «под себя», и в самом начале встает вопрос установки новой темы. Тема – неотъемлемая часть дизайна мобильного устройства на андроиде, путем ее замены можно полностью поменять интерфейс.

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

На операционной системе андроид установить и поменять новую тему можно тремя способами:

Плюсы этого способа в том, что он очень прост, а минус – в том, что большинство тем в Goggle Play платные.

  1. Установить тему через программу синхронизации с компьютером. Темы устанавливаются также, как приложения, для этого можно использовать любую программу для синхронизации с функцией установки приложений.

В MyPhoneExplorer для этого нужно нажать на кнопку «Приложения» в меню «Файлы», затем – на кнопку «Установить». Выбрать файл темы (с расширением .apk), после чего на устройстве подтвердить установку.

Недостатки этого метода:

  • нужен компьютер под рукой
  • требуется установка программы-синхронизатора
  1. Воспользоваться приложением AppsInstaller. Это программа, при помощи которой можно устанавливать приложения на Android-устройства непосредственно из его памяти.
  • Загрузить на устройство и установить программу AppsInstaller.
  • Скопировать файл .apk в память устройства (не имеет значения, на внутреннюю память или SD-карту).
  • Запустить AppsInstaller, программа проведет поиск в памяти устройства файлов с нужным расширением и выведет их список.
  • Выбрать нужную тему.

Все эти способы доступны рядовому пользователю.

Для более продвинутых есть возможность создавать собственные темы

  • Взять какую-либо готовую тему на андроид.
  • Декомпилировать ее, например, с помощью приложения APKTool.
  • Открыть папку и в ней найти картинки. Отредактировать их в графическом редакторе или полностью заменить на свои.
  • Цвета можно поменять в XML.
  • Компилировать (той же программой для тем APKTool).
  • Присвоить приложению название (Программой ZipSinger или аналогичной).
  • Установить созданную тему одним из 3 способов.

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

Например, Launcher 8 free для андроид позволяет оформить устройство в стиле Windows 8, при этом можно самостоятельно настроить цвета, а также создать макеты рабочих столов с помощью различных ярлыков и виджетов.

Доступны более сотни цветовых оформлений, анимация, имитация светодиодной подсветки и живая галерея. Лаунчер доступен для бесплатной скачки в Google Play.


Среди множество готовых Лаунчеров вы можете и не найти подходящий для вас. Разработчики Launcher Lab просветленные в этой проблеме, потому выпустили конструктор для создания Launcher прямо на Андроид устройствах. Приложением смогут пользоваться даже новички без опыта программирования. Все интуитивно понятно. Вы сможете изменять фоны, виджеты, надписи, выводимою информацию и остальное. DIY Themes оптимизирован под слабые характеристики устройств.




Theme DIY. Создание тем для прошивок основанных на Cyanogenmod 12/12.1/13 прямо со смартфона. Данное приложение позволяет создать с нуля свою уникальную тему за 5 минут и без наличия ПК.

Особенности:

  • Цвет системного фона.
  • Цвет основного фона.
  • Цвет текста и шрифт.
  • Цвет заголовка уведомлений.
  • Цвет быстрых настроек.
  • Цвет панели действий.
  • Цвет разделителя списка.
  • Цвет панели навигации.
  • Цвет строки состояния.
  • Настройка прозрачности элементов.
  • Добавление бутанимации.
  • Установка изображений в качестве фона к некоторым элементам интерфейса.
  • Применение темы к сторонним приложениям.

Созданные темы лежат по пути: sdcard/ThemeDIY/

Разработчик: Darkion Avey
Платформа: Android 5.0 и выше
Язык интерфейса: Русский (RUS)
Состояние: Pro (Полная версия)
Root: Не Нужен

Как разработчики Android, мы склонны в первую очередь фокусироваться на функциональности наших приложений. Однако одной функциональности достаточно редко хватает. В Google Play, где сегодня находится более миллиона приложений, внешний вид так же важен, как и функциональность, если не больше. Если вам трудно в этом поверить, я предлагаю вам быстро взглянуть на приложения в разделе "Топ чарты" в Google Play.

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

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

1. Создание стилей

Стили, очевидно, применяются к компонентам пользовательского интерфейса. Поэтому давайте начнем с создания новой пустой активности и добавления двух представлений в ее XML-файл макета.

Как видно из приведенного выше кода, свойства, такие как layout_width и layout_margin , явно включены в определение каждого представления.

Чтобы создать новый стиль для первого вида, щелкните его правой кнопкой мыши и выберите «Рефакторинг»> «Извлечь»> «Стиль».

Теперь вы увидите диалоговое окно, в котором вы можете указать имя стиля, а также выбрать атрибуты, которые должны быть в него включены. Пусть имя будет MyBox и выберите все атрибуты, кроме background .


Когда вы нажмете OK, вы увидите, что код для первого вида изменился.

В представлении теперь есть атрибут style , который указывает на стиль MyBox . Вы можете взглянуть на определение стиля, открыв res/values/styles.xml.

Как только стиль был создан, его можно применить к любому виду. Например, вот как вы применили MyBox ко второму представлению:

С применяемыми стилями, вот как выглядят два вида в активности:


2. Расширение стилей

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

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

Как вы могли догадаться, у MyBox.TEAL и MyBox.CYAN есть все свойства MyBox . В дополнение к этим, у них есть свойство android: background.

Второй синтаксис для создания производного стиля обычно называют явным синтаксисом. Он включает использование атрибута parent , значение которого задано как имя родительского стиля. Вот фрагмент кода, который определяет стиль под названием TealBox.

Применение производных стилей ничем не отличается от применения обычных.

Большинство разработчиков используют неявный синтаксис при расширении своих собственных стилей и явный синтаксис при расширении стилей платформы.

3. Создание тем

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

По умолчанию все приложения, созданные с использованием последней версии Andro >AppTheme . AppTheme является потомком известной темы AppCompat, большой и очень всеобъемлющей темы, которая может повлиять на внешний вид почти всех широко используемых представлений.

Вы можете найти определение AppTheme в styles.xml:

AppTheme использует Material Design. Поэтому для создания собственных тем, соответствующих спецификации Material Design, можно использовать AppTheme в качестве родителя. Кроме того, вы можете напрямую использовать Theme.AppCompat в качестве родителя.

Чтобы открыть редактор тем, откройте меню «Сервис» и выберите Android> Редактор тем.

С правой стороны окна редактора тем вы можете не только управлять существующими темами, но и создавать новые. Левая сторона показывает вам предварительный просмотр результатов внесенных вами изменений в темы.


Чтобы создать новую тему, нажмите раскрывающееся меню Тема и выберите вариант Создать новую тему.


На этом этапе styles.xml будет иметь новую строку, которая выглядит так:

4. Применение тем

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

Следующий код создает обычную Button , Button без полей, цветную Button , Checkbox , RadioButton , Switch , Seekbar , TextView и EditText .

Со всеми новыми добавлениями макет будет выглядеть так:


Если вы прочитали спецификацию Material Design, я уверен, что вы можете сказать, что в настоящее время активность использует оттенки индиго для colorPrimary и colorPrimaryDark . Для colorAccent используется оттенок розового. Это цвета по умолчанию, указанные в Android Studio. Вы можете найти их шестнадцатеричные эквиваленты в res/values/colors.xml вашего проекта.

Чтобы применить MyTheme , тему, созданную нами на предыдущем шаге, к вашей активности, откройте файл манифеста вашего проекта и добавьте атрибут android:theme в определение активности. Задайте значение @style/MyTheme .

Аналогично, вы можете применить тему ко всему вашему приложению, установив значение атрибута android: theme в определении приложения в @style/MyTheme .

Если вы сейчас посмотрите на свою активность, то она будет выглядеть совсем по-другому.


Заключение

Чтобы узнать больше о стилях и темах, я предлагаю вам ознакомиться с руководством по стилям и темам.

Android предлагает все больше возможностей для кастомизации интерфейса: если раньше пользователям приходилась получать root-права для того, чтобы просто поменять цвет меню настроек или выбрать тёмный режим для Google Play, то теперь многие производители сами включают такую опцию в систему.

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

Action Launcher

action-launcher

Оформление интерфейсов лучше всего начать с Action Launcher. Этот лаунчер уже включает в себя несколько базовых тем. В зависимости от установленного изображения рабочего стола, лаунчер автоматически меняет свой цвет.

В приложении можно найти ярлыки в стиле Android 7.1, панель быстрого запуска и элементы из лаунчера Google Pixel. Кроме того, лаунчер предлагает умное управление размером иконок. Action Launcher позволяет создавать различные темы для Android.

Еще одним лаунчером, предлагающим широкие возможности для настройки оформления системы, является Evie Launcher.

Energy Bar

energy-ring

Energy Bar / Ring – это группа приложений, с помощью которых можно расположить шкалу индикатора заряда батареи у верхнего края экрана. Такая шкала позволит быстро оценить оставшееся время работы гаджета.

Для безрамочных устройств и устройств с «челкой» разработчики предлагают Energy Ring. Приложения работают на всех устройствах с обычными рамками, на большинстве безрамочных устройств и некоторых смартфонах с «челкой».

Gboard и SwiftKey

swiftkey-keyboard

Gboard и SwiftKey – одни из самых популярных клавиатур для устройств на базе Android, обе отлично подходят для кастомизации интерфейса.

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

Есть и другие клавиатуры с подобным функционалом, однако Gboard и SwiftKey – одни из лучших с точки зрения удобства использования и кастомизации. Кроме того, они бесплатны и не предлагают рекламу. Спасибо Google и Microsoft!

KWGT и KLWP

kwgt

KWGT – редактор виджетов с широкими возможностями. Приложение поддерживает Google Fit, отображает информацию с большинства датчиков, показывает погоду и даже позволяет настраивать таймеры обратного отсчета. Для более тонкой настройки виджетов имеется поддержка Tasker.

KLWP – это редактор живых обоев, основанный на принципе WYSIWYG, позволяющий редактировать обои своему усмотрению.

KLWP и KWGT имеют много общих особенностей, оба отлично подходят для создания тем на Android. Разработчик также предлагают KLCK Kustom Lock Screen для настройки экрана блокировки.

Nova Launcher

nova-launcher

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

Nova Launcher поддерживает различные наборы иконок, позволяет производить гибкую настройку сетки иконок, менять цвета, создавать прокручиваемую док-панель.

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

Reddit

reddit

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

Мы рекомендуем начать с AndroidThemes. Там пользователи делятся заставками своего экрана, а также (обычно) оставляют ссылки на приложения, с помощью которых им удалось поменять внешний вид интерфейса. Таким образом, можно найти для себя различные наборы иконок, обои, скачиваемые темы от KWGT и KWLP, и многое другое.

В любом случае вы ничего не теряете, ведь Reddit – бесплатный ресурс, если не считать добровольной месячной подписки, которая избавит вас от рекламы и предоставит доступ к некоторым дополнительным настройкам.

Tapet

tapet

Сейчас можно найти множество классных обоев, но Tapet выделяется из общей массы. Это первое приложение, которое автоматически создаёт обои из загруженных в него паттернов. Оно предлагает более 100 узорных стилей, а также возможность полностью менять их цвет. Tapet не скачивает изображения из интернета, а создаёт новые прямо в вашем устройстве.

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

Платная версия Tapet открывает еще больше возможностей в создании стилей.

uccw

UCCW – одно из самых популярных приложений для кастомизации виджетов. Оно позволяет редактировать виджеты в режиме WYSIWYG, это позволяет следить за изменениями уже в процессе редактирования.

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

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

Walli

walli

Walli – не обычное приложение с обоями. Подобно Etsy, оно предлагает внушительную коллекцию авторских обоев, эксклюзивно созданных художниками для вас. Из других плюсов – легкая навигация по коллекции и возможность добавлять понравившиеся изображения в очередь для автоматического изменения фона. Для выбора обоев мы также рекомендуем Google Wallpapers, Abstruct и WallPix.

Xposed Framework, Substratum и Synergy

synergy-oneui-theme-compiler

Пользователям, осмелившимся нарушить условия гарантийного обслуживания и получить root-права на Android, открываются широкие возможности: например, можно воспользоваться Xposed Framework, Substratum и Synergy, чтобы добавить различные пользовательские фишки в интерфейс, а можно установить кастомную прошивку.

Пожалуй, это веские основания для того, чтобы стать суперпользователем, ведь это дает возможность получить полный контроль над системой. Здесь мы приводим ссылку только на Substratum, но в интернете можно найти невероятное множество приложений для устройств с root-правами.

Facer and WatchMaker

facer-and-watchmaker

Wear OS предлагает широкие возможности для кастомизации интерфейса. Наверное, самым многофункциональным приложением для этого является Facer and WatchMaker.

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

Читайте также: