- Как изменить цвет строки состояния в Android?
- 7 ответов
- Как изменить цвет строки состояния в Android?
- 22 ответа
- Измените строку состояния устройства Android: процент заряда батареи, индикатор сети и многое другое
- Как изменить строку состояния устройства Android?
- Русские Блоги
- Как изменить цвет строки состояния в Android
- #1-й этаж
- #2-ой этаж
- #3-й этаж
- #4-й этаж
- #5-й этаж
- # 6-й этаж
Как изменить цвет строки состояния в Android?
Я хочу изменить цвет выделенной полосы в Android Studio:
Как я могу это сделать?
7 ответов
Вы можете изменить его, установив android:statusBarColor или android:colorPrimaryDark стиля, который вы используете для своего приложения, в styles.xml.
( android:statusBarColor наследует значение android:colorPrimaryDark по умолчанию)
Например (поскольку здесь мы используем тему AppCompat, пространство имен android опущено):
На уровне API 21+ вы также можете использовать метод Window.setStatusBarColor() из кода.
Чтобы это вступило в силу, окно должно рисовать фоны системной панели с помощью WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS и WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS не должны быть установлены. Если цвет непрозрачен, рассмотрите возможность установки View.SYSTEM_UI_FLAG_LAYOUT_STABLE и View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN .
Строка состояния — системное окно, принадлежащее операционной системе. На устройствах до 5.0 для Android приложения не имеют права изменять свой цвет, поэтому это не то, что библиотека AppCompat может поддерживать более старые версии платформы. Лучшим AppCompat может служить поддержка окраски ActionBar и других общих виджетах пользовательского интерфейса в приложении.
На устройствах после 5.0 для Android Изменение цвета строки состояния также требует установки двух дополнительных флагов в окне; вам нужно добавить флаг FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS и очистить флаг FLAG_TRANSLUCENT_STATUS .
Вы также можете добавить эти строки кода в основное действие
Источник
Как изменить цвет строки состояния в Android?
Как изменить цвет строки состояния, который должен быть таким же, как на панели навигации.
Я хочу, чтобы цвет строки состояния был таким же, как цвет панели навигации
22 ответа
Добавлено в API уровня 21
В Android Lollipop появилась возможность изменять цвет строки состояния в вашем приложении для более полного погружения в работу пользователя и в соответствии с Material Design Guidelines Google.
Вот как вы можете изменить цвет строки состояния с помощью нового метода window.setStatusBarColor , представленного в API level 21 .
Для изменения цвета строки состояния также необходимо установить два дополнительных флажка в окне; вам нужно добавить флаг FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS и снять флаг FLAG_TRANSLUCENT_STATUS .
Официальный справочник разработчика: setStatusBarColor (int)
transitionName для фона просмотра будет android:status:background .
В Android 5.0 Lollipop появилась тема Material Design, которая автоматически окрашивает строку состояния в зависимости от значения темы colorPrimaryDark .
Это поддерживается на устройстве pre-lollipop благодаря библиотеке support-v7-appcompat, начиная с версии 21. Пост в блоге Криса Бейнса о поддержке appcompat v21
Поместите это ваши values-v21 / styles.xml, чтобы включить это на Lollipop:
Это очень простой способ сделать это без какой-либо библиотеки: если версия ОС не поддерживается — в kitkat — ничего не случилось. я делаю следующие шаги:
- в моем xml я добавил вверху это представление:
Затем я сделал этот метод:
Также вам понадобятся эти оба метода, чтобы получить высоту панели действий и строки состояния:
Тогда единственное, что вам нужно, это эта строка для установки цвета строки состояния:
Для разработчиков Java:
Как сказал @Niels, вы должны поместить в values-v21 / styles.xml:
Но добавьте tools:targetApi=»lollipop» , если вам нужен отдельный файл styles.xml, например:
Для разработчиков Kotlin:
Вы можете использовать этот простой код:
Однострочный текст на Котлине:
Исходный ответ с Java и проверкой версии вручную:
Чтобы изменить цвет вышеупомянутого lolipop, просто добавьте его в свой файл styles.xml.
но помните , что если вы хотите, чтобы строка состояния была светлой, добавьте и эту строку
Что ж, решение Ижара было в порядке, но лично я стараюсь избегать кода, который выглядит следующим образом:
К тому же я тоже не люблю дублировать код. В вашем ответе я должен добавить такую строку кода во все действия:
Итак, я взял решение Izhar и использовал XML, чтобы получить тот же результат: создать макет для StatusBar status_bar.xml
Обратите внимание на атрибуты высоты и возвышения, они будут установлены в значениях values-v19, values-v21 ниже.
Добавьте этот макет в макет действий, используя include, main_activity.xml:
Для панели инструментов добавьте атрибут верхнего поля:
В appTheme style-v19.xml и styles-v21.xml добавьте атрибут windowTranslucent:
И, наконец, в ваших sizes, sizes-v19, sizes-v21 добавьте значения для панели инструментов topMargin и высоту statusBarHeight: sizes.xml меньше, чем KitKat:
Высота строки состояния всегда составляет 24dp sizes-v19.xml для KitKat и выше:
Размеры-v21.xml для Lolipop, просто добавьте высоту, если необходимо:
Это результат для Jellybean KitKat и Lollipop:
Просто создайте новую тему в res / values / styles.xml , где вы измените colorPrimaryDark, который является цветом строки состояния:
И измените тему действия в AndroidManifest.xml на желаемую, при следующем действии вы можете изменить цвет обратно на исходный, выбрав исходную тему:
Вот как должен выглядеть ваш res / values / colors.xml :
С помощью этой функции вы можете изменить цвет строки состояния. работает на android. L означает API 21 и выше и требует цветовой строки, такой как «#ffffff» .
У меня было следующее требование: Программное изменение цвета строки состояния, чтобы она оставалась прозрачной , чтобы панель навигации могла рисовать себя, перекрывая прозрачную строку состояния.
Я не могу сделать это с помощью API
Если вы отметите здесь в переполнении стека все до этой строки кода, установите прозрачность строки состояния на
Я могу управлять цветом и прозрачностью строки состояния следующим образом:
Android 4: вы мало что можете сделать, потому что вы не можете управлять цветом строки состояния из API . единственное, что вы можете сделать, — это установить строку состояния как полупрозрачную и переместить цветной элемент пользовательского интерфейса под статус бар. Для этого вам нужно поиграть с
в вашем основном макете. Это позволяет рисовать макет под строкой состояния. Затем вам нужно поиграть с отступом в верхней части основного макета.
Android 5 и выше: вы должны определить стиль с помощью
это позволяет панели навигации перекрывать строку состояния.
Затем, чтобы изменить цвет, сохраняя прозрачность строки состояния, вы должны установить цвет строки состояния с помощью
где drawerLayout определяется следующим образом
Чтобы изменить цвет строки состояния, перейдите в res/values-v21/styles.xml и цвет строки состояния
Если вы хотите программно изменить цвет строки состояния (при условии, что на устройстве установлена ОС Android 5.0). Это простой способ изменить statusBarColor из любого действия и очень простые методы, когда разные фрагменты имеют разный цвет строки состояния.
Измените colorPrimary в файле colors.xml в Values на цвет, который должен быть для строки состояния. Например:
Если вы хотите работать на Android 4.4 и выше, попробуйте это. Я имею в виду ответ Харприта и эту ссылку. Android и прозрачная строка состояния
Сначала вызовите метод setStatusBarColored в методе onCreate Activity (я поместил его в класс util). Я использую здесь изображение, вы можете изменить его, чтобы использовать цвет.
Цвет строки состояния был изменен, но панель навигации обрезана, поэтому нам нужно установить поле или смещение панели навигации в методе onCreate.
Тогда строка состояния будет выглядеть так.
Решение очень простое, поместите следующие строки в свой style.xml
Для темного режима:
Это то, что у меня сработало в KitKat и дало хорошие результаты.
Измените colorPrimaryDark на желаемый цвет в файле res / values / styles.xml.
Просто добавьте эти строки в свой файл styles.xml
Еще одно решение:
Я использовал этот код, чтобы изменить строку состояния на прозрачную
Чтобы изменить его на цвет в стиле, использовал этот код, который я использовал во фрагменте в onDetach ()
Если вы хотите установить настраиваемый файл с возможностью рисования, используйте этот фрагмент кода
Источник
Измените строку состояния устройства Android: процент заряда батареи, индикатор сети и многое другое
ОС Android — лучший вариант, позволяющий пользователю настраивать интерфейс. В основном это можно сделать двумя способами. Как пользователь вы получаете доступ супер пользователя или используете сторонние приложения из Play Store.
Когда мы говорим о доступе супер пользователя, мы имеем в виду рутирование устройства. Этот процесс не так прост для тех, кто не спешит по техническим причинам. Нет, я не хочу обидеть, но мы получаем тысячи сообщений, в которых люди пытаются рутировать свои устройства и в конечном итоге блокируют их.
Итак, следующая альтернатива — использовать сторонние приложения, которые упрощают настройку. Все, что вам нужно сделать, это переключить несколько настроек в приложении, и вы сразу же увидите, как происходит настройка.
В этом руководстве мы попытаемся изменить строку состояния устройства Android с помощью популярного стороннего приложения. Этот процесс не будет включать в себя сложный процесс, такой как рутирование телефона. Это очень легко настроить строку состояния Android устройства , и мы расскажем вам , как сделать это.
Как изменить строку состояния устройства Android?
Теперь вы можете подумать, какое приложение, о котором мы упоминали выше, можно использовать для настройки строки состояния Android-устройства. Приложение называется Super Status Bar .
В этом посте мы разместили официальную ссылку для скачивания из магазина игр . Обычная версия бесплатна и позволяет выполнять базовые настройки.
Существует профессиональная версия приложения, которая будет стоить вам немного денег. По сути, премиум-версия позволит гораздо больше настраивать вашу строку состояния. Это позволит вам изменить внешний вид строки состояния как у интерфейса iOS или MIUI. Бесплатная версия допускает настройку только на базе Android 9.0 Pie и Android 10.
Источник
Русские Блоги
Как изменить цвет строки состояния в Android
How do I change the status bar color which should be same as in navigation bar. Как изменить цвет строки состояния, этот цвет должен быть таким же, как цвета в панели навигации.
I want the status bar color to be same as the navigation bar color Я надеюсь, что цвет строки состояния такой же, как навигационный бар.
#1-й этаж
#2-ой этаж
Added in API level 21 Добавить в API Уровень 21
Android Lollipop brought with it the ability to change the color of status bar in your app for a more immersive user experience and in tune with Google’s Material Design Guidelines . Android Lollipop имеет возможность изменить цвет строки состояния приложения, чтобы обеспечить более захватывающий опыт пользователей и пойти с Google Material Design Guidelines 。
Here is how you can change the color of the status bar using the new window.setStatusBarColor method introduced in API level 21 . Это используется API level 21 Введен новый window.setStatusBarColor Метод изменяется в цвете полоса состояния.
Changing the color of status bar also requires setting two additional flags on the Window; Изменение цвета строки состояния также необходимо настроить две другие признаки в окне. you need to add the FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag and clear the FLAG_TRANSLUCENT_STATUS flag. Вам нужно добавить FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS Знак и очистить FLAG_TRANSLUCENT_STATUS Знак.
Working Code: Рабочий код:
The transitionName for the view background will be android:status:background . Вид фон transitionName Буду android:status:background 。
#3-й этаж
Android 5.0 Lollipop introduced Material Design theme which automatically colors the status bar based on the colorPrimaryDark value of the theme. Lollipop Android 5.0 вводит тему дизайна материала, которая основана на теме colorPrimaryDark Значение автоматически представляет собой строку состояния colorPrimaryDark 。
This is supported on device pre-lollipop thanks to the library support-v7-appcompat starting from version 21. Blogpost about support appcompat v21 from Chris Banes Это поддержка предварительного на палочке оборудования благодаря поддержке «Совместимость программы -V7 -V7».Болоннец о совместимости программы поддержки V21 от Chrisbanes
#4-й этаж
this is very easy way to do this without any Library: if the OS version is not supported — under kitkat — so nothing happend. Это очень простой способ, вам не нужно никаких библиотек: если вы не поддерживаете версию операционной системы (под Kitkat), что никогда не происходит. i do this steps: Я делаю это таким образом:
- in my xml i added to the top this View:В моем XML я добавляю эту точку зрения наверх:
then i made this method: Тогда я сделал этот метод:
also you need those both methods to get action Bar & status bar height: Вам также необходимо использовать эти два метода одновременно для получения высоты рабочей строки и строки состояния:
then the only thing you need is this line to set status bar color: Тогда вам нужна эта строка, чтобы установить цвет состояния цвета:
#5-й этаж
Place this is your values-v21/styles.xml, to enable this on Lollipop: Поместите его в свои значения — V21 / Styles.xml, чтобы включить его на леденец:
# 6-й этаж
Well, Izhar solution was OK but, personally, I am trying to avoid from code that looks as this: ОК, решение ИЖАР в порядке, но я лично я пытался избежать использования такого кода:
As well, I don’t like to duplicate code either. Точно так же мне не нравится дублирование кода. In your answer I have to add such line of code in all Activities: В вашем ответе я должен добавить следующую линию кода во всех действиях:
So, I took Izhar solution and used XML to get the same result: Create a layout for the StatusBar status_bar.xml Поэтому я использую решение Izhar и использовать XML, чтобы получить тот же результат: создать макет для состояния состояния status_bar.xml.
Notice the height and elevation attributes, these will be set in values, values-v19, values-v21 further down. ПРИМЕЧАНИЕ Свойства высоты и высоты, которые будут установлены в более целевом -V19, значение -V21.
Add this layout to your activities layout using include, main_activity.xml: Добавьте этот макет в свой мероприятие, используя Main_activity.xml:
For the Toolbar, add top margin attribute: Для панелей инструментов добавить свойства оси:
In your appTheme style-v19.xml and styles-v21.xml, add the windowTranslucent attr: Добавить свойство WindowtransLucent в вашем AppTheMe Style-V19.xml и Styles-v21.xml:
styles-v19.xml, v21: styles-v19.xml,v21:
And finally, on your dimens, dimens-v19, dimens-v21, add the values for the Toolbar topMargin, and the height of the statusBarHeight: dimens.xml for less than KitKat: Наконец, на вашу MESIC-V19, MESCH-V21, добавить значение Topmargin и высоту состояния Besturebarheight: Разместитель.
The status bar height is always 24dp dimens-v19.xml for KitKat and above: Для KITKAT и выше высота строки состояния всегда 24DP Message-V19.xml:
dimens-v21.xml for Lolipop, just add the elevation if needed: Lolipop message-v21.xml, если это необходимо, просто добавьте высоту:
This is the result for Jellybean KitKat and Lollipop: Это результат желебонов Kitkat и Lollipop:
Источник