Можно ли создать свою тему для андроид

Содержание
  1. Как создавать собственные темы для телефона Samsung с помощью тематического парка
  2. Создавайте собственные темы для своего смартфона Galaxy с помощью Theme Park за 8 простых шагов
  3. Theme DIY
  4. Стилизация Android-приложений и дизайн-система: как это сделать и подружить одно с другим
  5. Компоненты дизайн-системы
  6. Проектирование, отладка и доработка компонентов дизайн-системы
  7. Способы внедрения темы в приложение
  8. Программный способ
  9. Недостатки
  10. Достоинства
  11. Стандартный механизм стилей в Android
  12. Примеры
  13. Стилизация компонентов дизайн системы. Архитектура компонентов. Поддержка нескольких тем
  14. Стандартный конструктор view
  15. Интеграция стиля в компоненты дизайн системы и его связь с темой
  16. Реализация темы в приложении
  17. Тестирование компонентов дизайн-системы
  18. Делаем рабочее preview компонентов дизайн-системы в Android Studio
  19. Preview компонентов в .xml
  20. Проверка поведения компонентов в другой теме в Preview без пересборки приложения
  21. Переключение тем в приложении

Как создавать собственные темы для телефона Samsung с помощью тематического парка

Good Lock – это, пожалуй, один из лучших комплектов по индивидуальной настройке. К сожалению, не многие пользователи знают об этом из-за отсутствия рекламы у Samsung. Good Lock позволяет настроить практически все на вашем телефоне с помощью набора модулей, которые необходимо устанавливать индивидуально. LockStar и QuickStar позволяют настроить экран блокировки и панель быстрого доступа соответственно. MultiStar предлагает расширенные возможности работы с несколькими окнами, а Nice Shot – это многофункциональный редактор скриншотов. Samsung добавила новый модуль Good Lock под названием Theme Park, который позволяет создавать и настраивать свои темы. Вот пошаговое руководство по его использованию:

Создавайте собственные темы для своего смартфона Galaxy с помощью Theme Park за 8 простых шагов

Шаг 1: Загрузите и установите Good Lock из магазина Galaxy. Если он недоступен в вашем регионе, загрузите его со стороннего сайта, такого как APKMirror. Обратите внимание, что вам придется повторить процесс для всех отдельных модулей, если вы решите пойти по этому пути.

Как настроить свой телефон Galaxy с помощью Home Up

Шаг 2: Откройте Good Lock и нажмите на вкладку Family. Здесь нажмите на тематический парк. Затем вы будете перенаправлены на страницу Galaxy Store, где вам придется скачать и установить ее.

Шаг 3: Вернитесь к Good Lock и откройте тематический парк.

Беспроводная передача файлов на ПК с Windows 10 и с него с помощью смартфона Galaxy

Шаг 4: Нажмите кнопку «Создать новую тему», и вы попадете на следующий экран.

Шаг 5: Нажмите на верхнее левое изображение, чтобы настроить главный экран и нижнее левое изображение для экрана блокировки.

Шаг 6: Работайте с вкладками цвета, стиля и значков, пока не найдете свою идеальную подгонку.

Шаг 7: Как только вы закончите, нажмите значок сохранения в правом верхнем углу. Вы попадете в приложение «Мои темы», где вы увидите его вместе со всеми другими темами на устройстве.

Шаг 8: Выберите вашу тему и примените ее. И вуаля, теперь у вас есть собственная тема.

Вы можете использовать Theme Park вместе с другими модулями Good Lock для дальнейшей настройки внешнего вида вашего телефона. Самое приятное то, что все инструменты сертифицированы Samsung, так что вам не нужно беспокоиться о том, что третьи лица могут отобрать ваши данные. Good Lock поддерживается на большинстве устройств под управлением Android 9 One UI.

Читайте также:  Rogue company для андроида

Источник

Theme DIY

вкл. 27 Август 2017 . Опубликовано в Другое

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

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

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

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

Скачать приложение ThemeDIY на Андроид бесплатно вы можете по ссылке ниже.

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

Источник

Стилизация Android-приложений и дизайн-система: как это сделать и подружить одно с другим

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

Поэтому решили внедрить в наше приложение дизайн-систему и добавить поддержку нескольких тем оформления.

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

Компоненты дизайн-системы

Дизайн-система и её компоненты предназначены для унификации дизайна и стилевого единства во всем приложении.

Компонентами дизайн-системы в нашем случае будем называть custom view с возможностью адаптации к нескольким стилям приложения. Компоненты могут применяться в любом месте приложения (кнопки, элементы списка, заголовки и т.д.).

Проектирование, отладка и доработка компонентов дизайн-системы

Заказчиками компонентов дизайн-системы являются дизайнеры. С ними на первом этапе согласовываем надобность элемента (оценка переиспользуемости) и его функциональность.

После согласования должно быть понятно, какие опции нужно вынести в атрибуты custom view (цвет текста, текст, иконочку, цвет тинта иконочки и т.д.), а какие скрыть от изменений извне (это позволяет уберечь элемент от неправильного использования разработчиками).

Далее дизайнеры отрисовывают компонент в своих средах и отдают на разработку.

При реализации компонента нужно добавить поддержку тем (светлая или темная тема и т.д.) О том, как компонент поддерживает несколько тем, я расскажу ниже.

Лучшие методики

  • Создать модуль с компонентами дизайн-системы. Из положительных моментов: отдельный модуль может быть использован в других приложениях, а модульность позволяет быстрее ориентироваться.
  • Создать тестовое приложение с компонентами дизайн-системы. Это ускоряет разработку и отладку.

Способы внедрения темы в приложение

Мне известно два способа поддержки стилей в Android:

  • Программный (программная перекраска).
  • Стандартные механизмы стилей в Android.

Программный способ

Мы перекрашиваем всю иерархию view в runtime. Рекурсивно проходимся по ней и по определенным правилам перехода из одной темы в другую перекрашиваем компоненты. Те из них, которые не должны перекрашиваться, маркируются с помощью android:tag или android:contentDescription . Эти компоненты не учитываются при разборе иерархии экрана.

Читайте также:  Firewall для андроида без root

Перекрашивать можно как перед отображением экрана (например, в onStart() у Activity ), так и при работе с ним.

Недостатки

  • Требует дополнительных ресурсов, снижает производительность. Стилизация применяется после инициализации всех компонентов.
  • Нужно быть внимательным к правилам перехода из одной темы в другую. Требуется учесть огромное множество правил перекраски, можно что-то забыть. Получается длинная простыня из switch — case (Java) или when (Kotlin). И в довесок требуется учесть элементы, которые не нужно красить при помощи вышеупомянутых тегов.
  • Нельзя частично перекрасить в соответствии с темами. В любом правиле есть исключения, и не всегда всё в приложении делается по дизайн-системе. Непонятно, как действовать если требуется частичная перекраска некоторых элементов.

Применение стиля сводится к описанию изменений в конкретных элементах:

Достоинства

Не требует пересоздания Activity (это важно! Нет морганий при смене темы).
Я внедрил этот подход в одном известном всем продукте (см. скриншоты). Работает довольно быстро при простой однотипной вёрстке(в данном случае она была простая).

Стандартный механизм стилей в Android

Стиль — локальная стилизация экрана или view, затрагивающая только отдельный экран или view. Часто такую стилизацию называют «ThemeOverlay», или «легковесная» тема, которая позволяет переопределить атрибуты основной темы).

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

Темой можно считать множество стилизаций, которые можно переключать.

Примеры

В теме могут содержаться как стили конкретных view элементов, так и конкретные цвета.

Здесь объявлен стиль для конкретной view:

Стили поддерживают явное и неявное наследование:

  • Явное: Header1 унаследован от BaseTextWidget .
  • Неявное: Header1.Light унаследован от Header1 .

Если к текстовому элементу мы применим стиль Header1 , то подтянется только Header1 . А атрибуты Header1.Light или Header1.Dark не применятся.

Если к текстовому элементу мы применим стиль Header1.Light / Dark , то подтянутся стили Header1.Light / Dark и Header1 (достоинство неявного наследования)

Множественного наследования темы не поддерживают. Вероятно, из-за конфликтов одноименных атрибутов.

Стили каждого компонента дизайн-системы мы решили размещать в файлах attrs_component_name.xml (см. attrs_header1 , attrs_button и т.д.)

Стилизация компонентов дизайн системы. Архитектура компонентов. Поддержка нескольких тем

Стандартный конструктор view

Стандартный конструктор view предоставляет обширные средства для настройки элемента. Внешний вид элементов можно изменить через .xml-атрибуты или через определение стиля по умолчанию в стандартном конcтрукторе view.

Рассмотрим стандартный конструктор view на примере H1Component (задаёт крупный текст в шапке экранов):

Здесь attrs — атрибуты из определения .xml (в том числе кастомные атрибуты view). Они парсятся и применяются стандартным образом (см. ниже на примере FabComponent ).

defStyleAttr — стиль view по умолчанию.

context — контекст view, при помощи которого она создана.

ВАЖНО: чтобы view успешно переключала тему, необходимо чтобы она была создана при помощи контекста, унаследованного от android.view.ContextThemeWrapper (то есть контекст activity подходит, а applicationContext — не подходит (применится тема, которая подтянется из стиля, указанного в Manifest экрана).

ВАЖНО: при такой реализации главный приоритет у атрибутов, объявленных в .xml. У стилей, описанных в теме, приоритет ниже.

Читайте также:  Заставки для андроид живые обои

Интеграция стиля в компоненты дизайн системы и его связь с темой

Для поддержки темы компонентами дизайн-системы мы определяем в компонентах defStyleAttr и переключаем его в соответствии с темой, в которой он определен.

Реализация темы в приложении

Создаем две темы:

Компоненты дизайн системы системы будут тянуть этот стиль в таком ключе:

Тут определены стили каждой темы для этого элемента:

Применяем тему через стандартный механизм Android.

При создании Activity указываем нужную тему. Тогда MyBestText подтянет нужный стиль и окрасит свой текст в белый или черный в зависимости от темы (см. выше описание темы MyBestText ).

Цвета из темы мы будем разрешать прямо из .xml и подтягивать из темы.

ВАЖНО: начиная с Android 5.0 допускается отовсюду динамически разрешать android:background=»?attr/primary_background» (селекторы, shape, vector drawables и т.д.) В Android 4.4 есть ограничение на селекторы, при попытке динамически разрешить итоговый цвет из селекторов система упадёт.

При всех достоинствах такой реализации компоненты дизайн-системы не могут в preview Android Studio полноценно работать со стилизованными темами (к элементам не будут применяться стили).

Пока тема официально не использована нашими экранами, а только подключается программно (то есть стили наших activity не подгружают явным образом тему из Manifest ), мы не можем комфортно работать с элементами, поддерживающими темы в preview (их даже не будет в списке).

Тестирование компонентов дизайн-системы

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

Темы в Android являются неизменяемыми, но их всегда можно перезаписать полностью или частично через Activity.setTheme ( @StyleRes final int resid ). Так можно в нужный момент получить любую комбинацию стилей и собрать свою собственную тему. Но все стили должны быть объявлены в .xml заранее.

Программно изменять атрибут темы без отсылок к объявленным стилям, к сожалению, нельзя. По крайней мере, я не нашёл способа.

Если знаете, как подсунуть свой цвет в атрибут темы (не объявленный в ресурсах как style ), то напишите мне. Тогда мы сможем прямо из коробки манипулировать цветами с бэка на уровне стилизации всего приложения!

Делаем рабочее preview компонентов дизайн-системы в Android Studio

Темы экранов приложения должны наследоваться от темы дизайн-системы.

Preview компонентов в .xml

При некорректно установленной теме экрана компоненты дизайн-системы тоже не будут отображаться корректно (не применятся стили и цвета):

При установке темы, унаследованной от темы дизайн-системы, мы получим вот что:

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

Проверка поведения компонентов в другой теме в Preview без пересборки приложения

Чтобы проверить отображение в другой теме достаточно переключить тему в Preview light/dark.

Если конкретные реализации темы завязаны на ресурсы values/values-night, то можно переключать из preview в dark mode. И всё будет работать из коробки без выставления setTheme в Activity .

Переключение тем в приложении

Переключение тем в приложении может быть завязано на системное переключение dark-mode. В таком случае темы должны быть определены в директориях values и values-night.

Источник

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