Как изменить цвет строки состояния в 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
во-первых, это не дубликат, как в Как изменить цвет фона строки состояния android
Как изменить цвет строки состояния, который должен быть таким же, как в панели навигации.
Я хочу, чтобы цвет строки состояния был таким же, как цвет панели навигации
13 ответов
Android 5.0 Lollipop представила тему Material Design, которая автоматически окрашивает строку состояния на основе colorPrimaryDark значение темы.
это поддерживается на устройстве pre-lollipop благодаря поддержке библиотеки-v7-appcompat, начиная с версии 21. Blogpost о поддержке appcompat v21 от Chris Banes
добавлено в API уровня 21
Android Lollipop принес с собой возможность изменить цвет строки состояния в вашем приложении для более захватывающего пользовательского опыта и в гармонии с Google Material Design Guidelines .
вот как можно изменить цвет строки состояния, используя новый window.setStatusBarColor метод, введенный в API level 21 .
изменить цвет строки состояния, также требует настройки два дополнительных флага на окне; вам нужно добавить FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS флаг и очистить FLAG_TRANSLUCENT_STATUS флаг.
на transitionName для просмотра фон будет android:status:background .
место это ваши значения-v21 / стили.xml, чтобы включить это на Lollipop:
это очень простой способ сделать это без каких-либо библиотек: если версия ОС не поддерживается-под kitkat-так ничего не происходит. я делаю следующие шаги:
- в моем xml я добавил наверх этот вид:
затем я сделал этот метод:
также вам нужны эти оба метода, чтобы получить высоту панели действий и строки состояния:
тогда единственное, что вам нужно, это эта строка для установки строки состояния цвет:
Ну, Ижар решение было в порядке, но, лично я пытаюсь избежать кода, который выглядит так:
кроме того, я тоже не люблю дублировать код. В вашем ответе я должен добавить такую строку кода во все действия:
Итак, я взял решение Izhar и использовал XML, чтобы получить тот же результат: Создайте макет для строки состояния status_bar.в XML
обратите внимание на атрибуты высоты и высоты, они будут установлены в значениях значения-v19, значения-v21 далее вниз.
добавьте этот макет в макет действий с помощью include, main_activity.XML-код:
для панели инструментов добавьте атрибут верхнего поля:
в вашем стиле appTheme-v19.xml и стили-v21.xml, добавьте windowTranslucent attr:
и, наконец, на ваших dimens, dimens-v19, dimens-v21 добавьте значения для панели инструментов topMargin, и высота statusBarHeight: дименс.xml для меньше, чем KitKat:
высота строки состояния всегда 24dp dimens-v19.xml для KitKat и выше:
dimens-v21.xml для Lolipop, просто добавьте высоту, если это необходимо:
это результат для Jellybean KitKat и леденец:
просто создайте новую тему в res / значения / стили.в XML где вы меняете «colorPrimaryDark», который является цветом строки состояния:
и изменить тему деятельности в AndroidManifest.в XML на тот, который вы хотите, на следующем действии вы можете изменить цвет обратно к исходному, выбрав исходную тему:
таким образом res / значения / цвета.в XML должен выглядеть так:
у меня было такое требование: изменение программно цвета строки состояния, сохраняя его прозрачным, чтобы позволить навигационному ящику рисовать себя, перекрывая строку состояния trasparent.
Я не могу сделать это с помощью API
если вы проверяете здесь в Stack overflow everyone перед этой строкой кода, установите прозрачность строки состояния в solid с
Я в состоянии управлять цвет и прозрачность статус бар такой:
Android 4: вы мало что можете сделать, потому что вы не можете управлять цветом строки состояния из API . единственное, что вы можете сделать, это установить строку состояния как полупрозрачную и переместить цветной элемент вашего пользовательского интерфейса под строку состояния. Для этого вам нужно поиграть с
в основной макет. Это позволяет нарисовать макет в строке состояния. Затем вам нужно играть с некоторым дополнением с верхней частью вашего основного макет.
Android 5 и выше: вы должны определить стиль с
это позволяет навигационному ящику перекрывать строку состояния.
затем, чтобы изменить цвет, сохраняя строку состояния прозрачной, вы должны установить цвет строки состояния с
где drawerLayout определяется следующим образом
как сказал @Niels, вы должны разместить в значениях-v21 / styles.XML-код:
но добавить tools:targetApi=»lollipop» Если вы хотите одного стиля.xml, например:
вы можете изменить цвет строки состояния с помощью этой функции. работает на android L означает API 21 и выше и нуждается в цветовой строке, такой как «#ffffff» .
Если вы хотите работать на Android 4.4 и выше, попробуйте это. Я имею в виду ответ Харприта и эту ссылку. Android и прозрачная строка состояния
сначала вызовите метод setStatusBarColored в методе onCreate Activity (я помещаю его в класс util). Я использую изображение здесь, вы можете изменить его, чтобы использовать цвет.
цвет строки состояния был изменен, но панель navi отрезана, поэтому нам нужно установить маржу или смещение панели navi в методе onCreate.
затем в строке состояния будет выглядеть следующим образом.
Источник
Изменить цвет значка панели навигации в шаблоне Android Studio по умолчанию
Новый шаблон действия по умолчанию для навигационного ящика в Android Studio
Определяет заголовки и значки в файле меню activity_main_drawer следующим образом:
Первый элемент в моем примере использует красный значок:
Но когда я запускаю приложение, цвет значка остается черным. Я тестировал это для синих, зеленых, желтых и фиолетовых значков, но результат тот же.
Я где-то читал, что панель инструментов должна использовать ThemeOverlay.AppCompat.Dark.ActionBar , и мое приложение уже использует это в файле styles.xml :
И применили тему к макету панели приложений, поэтому программная цепочка цветов не работала.
Итак, попробуйте удалить все примененные стили , если вы не можете изменить цвет значка, а затем попробуйте указанные выше решения.
На основе комментариев @ojonugwa ochalifu и @ MD,
Вы можете добиться этого, написав app:itemIconTint , но если вы напишете это, цвет значков ящиков навигации также изменится. Простое и легкое решение, которое я нашел после большого количества исследований и разработок, заключается в том, что вы определили #FFE730 в теме AppBarLayout или, если вы используете Toolbar только без AppBarLayout , вы также можете напишите #FFE730 в теме или popupTheme из Toolbar в своем xml.
Это также изменит цвет стрелки назад для активности.
Надеюсь, это поможет вам всем, кто сталкивается с подобными проблемами.
Если вы хотите установить его динамически, вы можете использовать:
Источник
Как изменить цвета иконок в андроид студии
Я скачал некоторые значки с material.io, но они предлагают значки только в черном цвете. Я видел видео на YouTube, где они используют, чтобы вы могли выбрать цвет. Во всяком случае, я пытаюсь изменить цвет значков на белый. Мне не повезло. Я пытался изменить цвет заливки в Android Studio, но это не работает. Мы будем благодарны за любую помощь, такую как точный код и файлы для добавления кода. Спасибо.
5 ответов
Вы можете напрямую загрузить эти изображения в Android Studio.
Res> щелкните правой кнопкой мыши> New> Image Asset и выберите
- Тип значка: значки панели действий и вкладки
- Тип актива: Клип Арт
- Тема: ПОЛЬЗОВАТЕЛЬСКИЙ
И вы можете выбрать любой клип, который вы хотите, выбрать цвет, отступы и т. Д.
https://material.io/icons/ фактически позволяет загружать значки в белом цвете.
Но, в зависимости от того, что именно вы хотите сделать, есть несколько вариантов. Если вам просто нужны белые значки (а не менять их во время выполнения), этот плагин для Android Studio может оказаться полезным: https://github.com/konifar/android-material-design-icon-generator-plugin
Это позволяет создавать иконки дизайна материалов прямо в Android Studio, в любом цвете, который вы хотите. Другой вариант загрузки этих значков разных цветов — https://materialdesignicons.com/.
Если вы хотите раскрасить значки во время выполнения, попробуйте что-то вроде этого:
Как упоминалось ранее, значки material.io можно загружать непосредственно в Android Studio. Это решение показывает импорт векторных значков ресурсов, которыми легче управлять, поскольку они хранятся в одном месте (res / drawable) по сравнению с активами изображений, каждый значок которых будет храниться в папках определенной плотности (hdpi, xhdpi и т. Д.).
- разверните папку «res»
- рисование правой кнопкой мыши
- парить над «новым»
- выберите «Векторный актив»
- нажмите на изображение рядом со значком
- выберите нужный материал.
- Назовите иконку как хотите
- выберите «следующий»
Теперь у вас будет два варианта настройки цвета иконки
- В макете с помощью атрибута android: tint объекта ImageView. Это мое предпочтение, потому что значок можно просмотреть до выполнения.
imageView.setColorFilter(ContextCompat.getColor(context, android.R.color.white), PorterDuff.Mode.MULTIPLY);
Вы можете скачать белые иконки с material.io. также посмотрите на темы и наложения тем
Просто вы можете использовать
андроид : Оттенок = « @ андроид : цвет / белый »
Источник
Android-Изменение Цвета Текста Заголовка Actionbar
Я разрабатываю приложение, и я хочу change the textcolor of the actionbar title . теперь я определил тему в своем манифесте:
который определяется в стилях.XML-код:
это не работает, но я не понимаю, почему. это должно работать в соответствии с ответ.ни стиль textview не работает.
что я делаю неправильно?
обновление: изменено, чтобы встретить Грейс Фэн ответ ниже
11 ответов
используя SpannableString мы можем установить цвет текста Actionbar title
теперь добавьте этот стиль в качестве темы для панели инструментов в xml.
и теперь у тебя есть то, что тебе нужно.
просто добавить app:titleTextColor=»@color/CUSTOM_COLOR» вот так:
когда я получил ту же проблему, я использовал:
Я думаю, что это просто проблема деятельности.Я использовал тот же код, что и ты, и он работает.
во-первых ,я использовал AppCompatActivity в качестве базовой активности и получаю ошибку. и тогда я использую и работает. На мой взгляд, ваш код используется для темы для темы.Хоро, а теперь мы используем тему.Совместимости приложений . Поэтому, если вы хотите изменить, просто reference изменение фона и цвета текста темы AppCompat Light DarkActionBar на android. Это работает для мне.Удачи тебе.
кажется, вы использовали style вместо theme . стили и темы отличаются. Так замените
Я не знаю решения, но я смог изменить цвет текста между белым и черным с помощью этого метода.
Так, в стилях.xml у вас есть:
Если вы измените то, что внутри родителя=». «для темных или светлых тем он адаптирует цвет текста к этим темам. Например, прямо сейчас у вас есть темная тема, а текст белый, но когда я изменить «тему.Совместимости приложений.Свет» цвет текста становится черным.
Источник