- Темная тема в Android 10 по расписанию с помощью приложения Automatic Dark Theme [Инструкция]
- Темная тема в Android 10 по расписанию с помощью приложения Automatic Dark Theme [Инструкция]
- Автоматическая смена темы андроид 10
- DayNight: настраиваем автоматическую смену темы в android в зависимости от времени суток
- Как использовать Theme.AppCompat.DayNight ?
- Метод setLocalNightMode()
- Как проверить, какой режим может использовать мое приложение?
- Если приложение выглядит странно
- WebView
- Местоположение
- Почему просто не сделать AUTO по умолчанию?
- Можно ли использовать свои собственные ресурсы для темы день / ночь?
Темная тема в Android 10 по расписанию с помощью приложения Automatic Dark Theme [Инструкция]
Как известно, в Android 10 компания Google предусмотрела возможность включения темной темы оформления интерфейса для всей системы, но почему-то не подумала о том, чтобы включать и выключать её в определенное время суток, по расписанию. Но этот недостаток достаточно просто исправить.
Включать темную тему на заданный вами промежуток времени можно с помощью специально созданного для этих целей приложения, которое недавно появилось в Google Play Маркет. Называется это приложение Automatic Dark Theme for Android 10.
Пользоваться им очень и очень просто. Для этого вам будет достаточно дать ему разрешение для доступа к соответствующей системной функции: краткую инструкцию вы увидите при старте приложения (подробную найдете в этой статье ниже), а затем задать на его главном экране время включения темной темы (Enable dark theme at) и время её выключения (Enable light theme at):
Как видно на снимке экрана выше справа, единственной дополнительной опцией Automatic Dark Theme является возможность включения режима, когда смена тем будет проходить на заблокированном устройстве.
Как дать приложению Automatic Dark Theme необходимые ей для работы разрешения
1. Для начала понадобится компьютер с программами ADB и Fastboot. Скачать самые свежие версии ADB и Fastboot от Google вы можете по следующим ссылкам:
2. Включить на своем смартфоне, в меню настроек системы режим отладки через USB. Где его найти и как включить описано в этом материале
3. Подключите ваш смартфон к компьютеру при помощи USB кабеля, затем на компьютере перейдите в папку с программой ADB и запустите окно командной строки Windows или терминал Linux/Mac. На Windows ПК для этого в проводнике введите в адресной строке cmd и нажмите «Enter».
В открывшемся окне командной строки выполните команду:
Если все нормально, то ADB сообщит вам о том, что смартфон подключен к компьютеру, но не авторизован, а на экране смартфона появится запрос на разрешение отладки. Разрешите её нажав на кнопку ОК.
4. В окне командной строки/терминала выполните команду:
adb shell pm grant com.cannic.apps.automaticdarktheme android.permission.WRITE_SECURE_SETTINGS
./ adb shell pm grant com.cannic.apps.automaticdarktheme android.permission.WRITE_SECURE_SETTINGS
Всё. Теперь приложение сможет управлять темой оформления на вашем устройстве
Скачать Automatic Dark Theme можно с этой страницы Google Play Маркет
Источник
Темная тема в Android 10 по расписанию с помощью приложения Automatic Dark Theme [Инструкция]
Как известно, в Android 10 компания Google предусмотрела возможность включения темной темы оформления интерфейса для всей системы, но почему-то не подумала о том, чтобы включать и выключать её в определенное время суток, по расписанию. Но этот недостаток достаточно просто исправить.
Включать темную тему на заданный вами промежуток времени можно с помощью специально созданного для этих целей приложения, которое недавно появилось в Google Play Маркет. Называется это приложение Automatic Dark Theme for Android 10.
Пользоваться им очень и очень просто. Для этого вам будет достаточно дать ему разрешение для доступа к соответствующей системной функции: краткую инструкцию вы увидите при старте приложения (подробную найдете в этой статье ниже), а затем задать на его главном экране время включения темной темы (Enable dark theme at) и время её выключения (Enable light theme at):
Как видно на снимке экрана выше справа, единственной дополнительной опцией Automatic Dark Theme является возможность включения режима, когда смена тем будет проходить на заблокированном устройстве.
Как дать приложению Automatic Dark Theme необходимые ей для работы разрешения
1. Для начала понадобится компьютер с программами ADB и Fastboot. Скачать самые свежие версии ADB и Fastboot от Google вы можете по следующим ссылкам:
2. Включить на своем смартфоне, в меню настроек системы режим отладки через USB. Где его найти и как включить описано в этом материале
3. Подключите ваш смартфон к компьютеру при помощи USB кабеля, затем на компьютере перейдите в папку с программой ADB и запустите окно командной строки Windows или терминал Linux/Mac. На Windows ПК для этого в проводнике введите в адресной строке cmd и нажмите «Enter».
В открывшемся окне командной строки выполните команду:
Если все нормально, то ADB сообщит вам о том, что смартфон подключен к компьютеру, но не авторизован, а на экране смартфона появится запрос на разрешение отладки. Разрешите её нажав на кнопку ОК.
4. В окне командной строки/терминала выполните команду:
adb shell pm grant com.cannic.apps.automaticdarktheme android.permission.WRITE_SECURE_SETTINGS
./ adb shell pm grant com.cannic.apps.automaticdarktheme android.permission.WRITE_SECURE_SETTINGS
Всё. Теперь приложение сможет управлять темой оформления на вашем устройстве
Скачать Automatic Dark Theme можно с этой страницы Google Play Маркет
Источник
Автоматическая смена темы андроид 10
И почему Google сама не добавила подобную функциональность в Android 10?
В Android 10 пользователи могут легко переключаться между светлой и темной темой оформления, тапнув на соответствующую иконку в панели быстрых настроек. Но согласитесь, что было бы гораздо удобнее, если бы смартфон автоматически переключал темы, в зависимости от времени суток. И с помощью приложения Automatic Dark Theme теперь можно это реализовать.
Правда, чтобы получить доступ к настройкам приложения, придется сначала прописать ADB-команду, которая разрешит ему вносить изменения в систему. Весь процесс займет у вас не более 5 минут.
Сперва надо зайти в настройки смартфона и семь раз нажать на Build number (About phone — Build number). После этого вам станет доступно меню настроек для разработчиков (System — Advanced — Developer options). В настройках для разработчиков найдите строку USB Debugging и активируйте ее.
Далее необходимо скачать и установить ADB на ваш компьютер. Затем откройте командную строку в папке ADB (команда для перехода «cd c:/adb»). Теперь подключите смартфон к компьютеру. Чтобы проверить, все ли вы правильно установили и сделали на смартфоне, введите команду «adb devices» — в ответ получите строку «List of devices attached» и ниже букво-цифровое обозначение своего устройства.
После этого введите команду, указанную в приложении (adb shell pm grant com.cannic.apps.automaticdarktheme android.permission.WRITE_SECURE_SETTINGS).
Готово, теперь в приложении Automatic Dark Theme нажмите Enable и можете задавать время для автоматического переключения тем.
В будущем разработчик приложения планирует добавить возможность переключения тем, в зависимости от времени заката/рассвета. Отмечу, что смена темы происходит в момент, когда смартфон заблокирован. Иначе приложения могли бы перезагружаться для смены оформления во время того, как вы их используете. Скачать приложение Automatic Dark Theme можно в Play Store.
Источник
DayNight: настраиваем автоматическую смену темы в android в зависимости от времени суток
О том, как настроить DayNight тему в приложении андроид, которая устанавливает темную или светлую тему оформления вашего приложения на основе времени суток и текущего местоположения
Мы уже писали, что вышла новая библиотека поддержки Android Support Library 23.2. Новая либа добавляет сразу несколько интересных вещей: это и поддержка векторных изображений в android ниже 5.0, и новые элементы материального дизайна, такие как Bottom Sheets.
Одна из фишек — новая тема DayNight с поддержкой автоматического переключения между светлой и темной темой оформления в зависимости от времени суток. Ее то мы сегодня и потестируем.
Об этом смотрите видео, а под видео — подробнее от разработчиков том, как гибко можно настроить работу и ресурсы для темы DayNight.
Theme.AppCompat.DayNight — это переключение между Theme.AppCompat (темной) и Theme.AppCompat.Light (светлой) на основе времени суток. Это имеет много преимуществ для пользователей, особенно если у вас content app . Эта функция работает на API v14 и выше, на младших версиях будет по умолчанию светлая тема.
Как использовать Theme.AppCompat.DayNight ?
Просто унаследуйте вашу тему от одного из вариантов DayNight в файле res/values/styles.xml:
Затем необходимо включить функцию в вашем приложении. Сделайте это путем вызова статического метода AppCompatDelegate.setDefaultNightMode(), который принимает одно из четырех значений:
- MODE_NIGHT_NO. Всегда используется дневная тема (светлая).
- MODE_NIGHT_YES. Всегда используется ночная тема (темная).
- MODE_NIGHT_AUTO. Автоматическое изменение между светлой/темной, в зависимости от времени суток.
- MODE_NIGHT_FOLLOW_SYSTEM (по умолчанию). Это системный параметр, который является по существу MODE_NIGHT_NO на момент написания (подробнее об этом ниже).
Вызов метода static, поэтому его можно вызвать в любое время. Устанавливаемое значение не сохраняется, поэтому вам нужно установить его каждый раз, когда ваше приложение стартует. Рекомендуется устанавливать его в статический блок в классе вашего приложения (если у вас он один), или вашей Activity, так:
Метод setLocalNightMode()
Можно переопределить значение по умолчанию в каждом компоненте путем вызова его AppCompatDelegate setLocalNightMode(). Это удобно, когда вы знаете, что только некоторые компоненты должны использовать функцию DayNight, или для тестирования, чтобы не сидеть и ждать ночи для проверки макета.
Обратите внимание, что этот вызов не заботится о восстановлении, если изменить режим ночь после любого вызова inflate(), он не будет иметь никакого эффекта. В этом случае можно использовать вызов recreate():
Как проверить, какой режим может использовать мое приложение?
Просто проверьте конфигурацию ресурсов:
Если приложение выглядит странно
Например, текст нечитабельный или иконки неправильного цвета.
Поскольку эта функция изменяет тему вашего приложения, вам нужно убедиться, что ваши макеты/стили/графика корректно отображались в светлых и темных условиях.
Возьмите за правило для этих вещей всегда использовать атрибуты темы, по возможности. Вот наиболее важные:
- ?android:attr/textColorPrimary — Цвет текста общего назначения. Будет черным для светлой темы, и белым для темной темы.
- ?attr/colorControlNormal — Цвет значка общего назначения.
WebView
Существует один большой нюанс этой функции: WebViews. Поскольку они не могут использовать атрибуты темы, и вы редко имеете контроль над любым веб-контентом, существует высокая вероятность того, что ваш WebView будет слишком контрастным против динамического оформления приложения. Поэтому проверьте ваше приложение в обоих режимах, чтобы убедиться что оформление не будет раздражать пользователя.
Местоположение
Чтобы иметь возможность рассчитать корректное переключение между днем или ночью, нам нужно знать ваше местоположение. Если ваше приложение уже имеет разрешения для определения местоположения, AppCompat будет попытаться захватить последнее известное местоположение от LocationManager и использовать их для вычисления времени восхода и захода солнца. Однако он не будет просить разрешения от вашего имени.
Если вы не установили эти разрешения (или просто нет последнего известного местоположения), в настоящее время используются некоторые фиксированные значения. Например это 6 утра (начало дня) и 10 вечера (начало ночи), но это может измениться в будущем, по словам разработчиков.
Если вы ориентируетесь на Android SDK версии 23, вы будете использовать разрешения времени выполнения. Можно реализовать в вашем приложении настройку, позволяя пользователю выбрать включение функциональности DayNight. Это хороший способ, чтобы запрашивать разрешения определения местоположения, если требуется высокая точность определения времени восхода/заката.
Почему просто не сделать AUTO по умолчанию?
Существует несколько причин, которые станут понятны после просмотра примерного сценария для использования этого:
- Изменить тему продления от Theme.AppCompat.DayNight.
- Добавить установку в вашем приложении, предоставив пользователю выбор. На этом этапе сохранить настройки (вероятно, в SharedPreference). Вызов setDefaultNightMode () с выбранным значением.
Тогда в следующий раз, когда ваше приложение запускается, прочитать сохраненное значение и вызвать setDefaultNightMode () снова с выбранным значением.
Таким образом, основная причина заключается в том , не желательно, чтобы ваш пользователь обновил приложение, и вдруг обнаружил , что оно меняет цвет случайным образом (для него) на основе времени суток. Кроме того, по умолчанию MODE_NIGHT_FOLLOW_SYSTEM, поэтому если разработчики добавят user-visible setting на платформу в будущем, AppCompat будет автоматически использовать его.
Можно ли использовать свои собственные ресурсы для темы день / ночь?
Да, можно. AppCompat в простых терминах просто позволяет использовать отдельные ресурсы ночного режима в любое время. Они на самом деле были доступны в платформе, начиная с API 8, но использовались только в очень конкретном сценарии: в режиме автомобиля и стыковки.
Источник