- CheckBox (Флажок)
- Отслеживаем смену состояния флажка
- Собственные стили
- Собственный вид
- AnimatedStateListDrawable. Анимация между переключением состояния
- res/drawable/toggle.xml
- res/drawable/toggle_checked.xml
- res/drawable/toggle_unchecked.xml
- res/drawable-v21/toggle.xml
- res/drawable-v21/toggle_unchecked_checked.xml
- res/drawable-v21/toggle_checked_unchecked.xml
- Как изменить цвет CheckBox?
- Как изменить цвет CheckBox?
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- Ответ 6
- Ответ 7
- Ответ 8
- Ответ 9
- Ответ 10
- Ответ 11
- Ответ 12
- Ответ 13
- Ответ 14
- Ответ 15
- Ответ 16
- Ответ 17
- Ответ 18
- Ответ 19
- Ответ 20
- Ответ 21
- Как установить цвет рамки флажка
CheckBox (Флажок)
Компонент CheckBox является флажком, с помощью которого пользователь может отметить (поставить галочку) определённую опцию. Очень часто флажки используются в настройках, когда нужно выборочно выбрать определённые пункты, необходимые для комфортной работы пользователю.
Компонент находится в группе Buttons.
Для управления состояниями флажка используйте методы setChecked() или togglе(). Чтобы узнать текущее состояние флажка, вызовите свойство isChecked.
Для экспериментов воспользуемся программой «Счетчик ворон», которую писали при изучении щелчка кнопки.
Как вы помните, в программе была кнопка и текстовое поле. Добавим ещё два элемента CheckBox, а также четыре текстовые метки TextView. Нам нужно постараться, чтобы элементы были аккуратно сгруппированы. Для этой цели воспользуемся вложенными компоновками LinearLayout. Заодно применим интересный приём — мы не будем использовать текст у флажков CheckBox, а воспользуемся текстовыми метками с разными размерами шрифтов. Верхняя метка с крупным шрифтом будет указывать на основную функциональность флажка, а нижняя метка с мелким шрифтом будет использоваться в качестве своеобразной подсказки, в которой содержится дополнительная информация для пользователя.
На самом деле вы можете попробовать другие способы разметки, не воспринимайте как догму. А мы идём дальше. Флажки в нашем приложении нужны для того, чтобы пользователь мог менять вывод текста в текстовом поле. По желанию, можно выводить текст красным цветом и жирным стилем по отдельности или в совокупности. Для этого нам нужно добавить дополнительные строчки кода в обработчик щелчка кнопки.
Запустите проект и попробуйте снимать и ставить галочки у флажков в разных комбинациях, чтобы увидеть, как меняется текст после щелчка кнопки. Код очень простой — проверяется свойство isChecked. Если галочка у флажка установлена, то свойство возвращает true и мы меняем цвет (красный) или стиль текста (жирный). Если флажок не отмечен, то свойство возвращает false, и мы используем стандартные настройки текста.
Отслеживаем смену состояния флажка
С помощью слушателя-интерфейса OnCheckedChangeListener с его методом onCheckedChanged() можно отслеживать смену состояния флажка.
Собственные стили
Если вы используете стандартный проект, то флажок будет использовать цвета Material Design, в частности цвет colorAccent для фона флажка.
В файле res/values/styles.xml добавим строки:
Свойство colorControlNormal отвечает за прямоугольник в невыбранном состоянии, а colorControlActivated за закрашенный прямоугольник в выбранном состоянии.
Присваиваем созданный стиль атрибуту android:theme:
Теперь цвета флажков изменились.
Собственный вид
Если вас не устраивает стандартный вид элементов CheckBox, то не составит никакого труда реализовать свои представления о дизайне.
В папке res/drawable создаём файл checkbox_selector.xml:
Также необходимо подготовить два изображения для двух состояний флажков — выбран и не выбран. В нашем случае это две звезды — серая и жёлтая.
Осталось прописать селектор в компоненте CheckBox (атрибут android:button):
Готово! Можете запускать проект и проверять работу флажков. Ниже код для реагирования на смену состояния флажков:
AnimatedStateListDrawable. Анимация между переключением состояния
Когда мы создали собственный вид флажка, то переключение происходит сразу без анимации. В API 21 появилась возможность установить анимацию при помощи нового класса AnimatedStateListDrawable.
Создадим как прежде файл для собственного вида флажка.
res/drawable/toggle.xml
Далее нужные два значка. Они сделаны в векторном виде.
res/drawable/toggle_checked.xml
res/drawable/toggle_unchecked.xml
Присвоим созданный вид атрибуту android:button.
Код будет работать на устройствах, которые поддерживают векторную графику (API 14), но анимации не будет. Для анимации создадим альтернативный вариант файла в папке res/drawable-v21.
AnimatedStateListDrawable похож на обычный StateListDrawable, но позволяет указать анимацию перехода между двумя состояниями. Мы также указываем две картинки, но также добавляем элементы transition.
res/drawable-v21/toggle.xml
res/drawable-v21/toggle_unchecked_checked.xml
res/drawable-v21/toggle_checked_unchecked.xml
Если запустить пример на старом устройстве, то никакой анимации не увидим, но код будет работать без ошибок. На новых устройствах анимация будет работать.
Источник
Как изменить цвет CheckBox?
Как изменить цвет CheckBox по умолчанию на Android?
По умолчанию цвет CheckBox зеленый, и я хочу изменить этот цвет.
Если это невозможно, сообщите мне, как создать пользовательский CheckBox ?
Вы можете изменить CheckBox с помощью android:button=»@drawable/your_check_drawable» .
Вы можете покрасить непосредственно в xml. Используйте кнопку buttonTint для поля: (по уровню API 23)
Вы также можете сделать это, используя appCompatCheckbox v7 для более старых API:
Вы можете установить тему Android для флажка, чтобы получить нужный цвет в ваших стилях. Xml add:
Затем в вашем файле макета:
В отличие от использования android:buttonTint=»@color/CHECK_COLOR» этот метод работает под Api 23
Добавьте эту строку в свой файл styles.xml :
Я бы предложил использовать его стиль подхода в android как способ настройки встроенных андроидов, добавить новый стиль в свой проект:
И добавьте этот стиль в тему флажка: android: theme = «@ style / youStyle»
надеюсь это поможет.
Я столкнулся с такой же проблемой, я получил решение, использующее ниже технику. Скопируйте btn_check.xml из android-sdk/platforms/android-#(version)/data/res/drawable в выпадающую папку вашего проекта и измените состояния изображения «включено» и «выключено» на свои пользовательские изображения.
Тогда вашему xml просто потребуется android:button=»@drawable/btn_check»
Если вы хотите использовать разные значки Android по умолчанию, вы можете использовать:
Вы можете создать свой собственный xml в drawable и использовать его в качестве андроида: background = «@ drawable / your_xml»
В том, что вы можете дать пограничный угол все
Вы можете изменить цвет фона ,
Если вы собираетесь использовать значки android, как описано выше.
.. это хороший вариант, но для этого нужно работать – я обнаружил, что вам нужно добавить логику переключения, чтобы показать / скрыть галочку, например:
Создайте Drawable resource file xml Drawable resource file под res->drawable и назовите его, например checkbox_custom_01.xml
Загрузите свои собственные файлы изображений флажка (я рекомендую png) в папку res->drawable .
Затем зайдите в свой файл макета и измените свой флажок, чтобы
Вы можете настроить что угодно, пока android:button указывает на правильный файл XML, который вы создали ранее.
ПРИМЕЧАНИЕ к NEWBIES: хотя это необязательно, но, тем не менее, хорошая практика – назвать ваш флажок уникальным идентификатором во всем дереве раскладки.
Вы можете использовать следующие два свойства в «colors.xml»
ColorControlNormal предназначен для нормального просмотра флажка, а colorControlActivated – для тех случаев, когда установлен флажок.
Вы должны попробовать под кодом. Он работает для меня.
Источник
Как изменить цвет CheckBox?
Как изменить цвет CheckBox по умолчанию на Android?
По умолчанию цвет CheckBox зеленый, и я хочу изменить этот цвет.
Если это невозможно, сообщите мне, как сделать пользовательский CheckBox ?
ОТВЕТЫ
Ответ 1
Если ваш minSdkVersion равен 21+, используйте атрибут android:buttonTint чтобы обновить цвет флажка:
В проектах, которые используют библиотеку AppCompat и поддерживают версии Android ниже 21, вы можете использовать совместимую версию атрибута buttonTint :
В этом случае, если вы хотите создать подкласс CheckBox , не забудьте использовать AppCompatCheckBox .
ПРЕДЫДУЩИЙ ОТВЕТ:
Вы можете изменить CheckBox рисования, используя атрибут android:button=»@drawable/your_check_drawable» .
Ответ 2
Вы можете изменить цвет непосредственно в XML. Используйте buttonTint для поля: ( buttonTint с уровня API 23)
Вы также можете сделать это, используя appCompatCheckbox v7 для более старых уровней API:
Ответ 3
вы можете установить тему Android для флажка, чтобы получить нужный цвет в ваших стилях. xml add:
то в вашем файле макета:
в отличие от использования android:buttonTint=»@color/CHECK_COLOR» этот метод работает под Api 23
Ответ 4
Ответ 5
Используйте buttonTint чтобы изменить цвет кнопки и селектора цвета для выше 21+ API-версии.
Ответ 6
Я бы предложил использовать его стиль в андроиде как способ настроить встроенные андроидные представления, добавить новый стиль в свой проект:
и добавьте этот стиль в тему флажка: Android: тема = «@стиль/youStyle»
надеюсь, что это поможет.
Ответ 7
Добавьте buttonTint в свой XML
Ответ 8
Добавьте эту строку в свой styles.xml файл:
Ответ 9
ButtonTint работал для меня, попробуйте
андроид: buttonTint = «@цвет/белый»
Ответ 10
У меня столкнулась с такой же проблемой, я получил решение, использующее ниже технику. Скопируйте btn_check.xml из android-sdk/platforms/android-#(version)/data/res/drawable в выпадающую папку проекта и измените состояния изображения ‘on’ и ‘off’ на свои пользовательские изображения.
Тогда вашему xml просто нужно android:button=»@drawable/btn_check»
Если вы хотите использовать разные значки Android по умолчанию, вы можете использовать:
Ответ 11
Вы можете изменить цвет checkbox используя одну строку кода
Ответ 12
вы можете создать свой собственный xml в drawable и использовать его как android: background = «@drawable/your_xml»
в том, что вы можете задать граничный угол.
Ответ 13
Привет. Это код темы для темы «Темная тема» и «Света».
Если вы хотите изменить цвет флажка, атрибут colorAccent будет использоваться для проверенного состояния, а «android: textColorSecondary» будет использоваться для снятия отметки состояния.
«actionOverflowButtonStyle» будет использовать для изменения цвета значка переполнения на панели действий.
«buttonsearch_picture» атрибут будет использоваться для цвета оттенка изменения кнопки Action в панели действий. Это пользовательский атрибут в style.xml
То же самое для кнопки обновления, которую я использую в своем приложении.
«android: popupMenuStyle» используется, чтобы получить стиль всплывающего меню темы Light в темной теме.
И это панель инструментов, которую я использую в своем приложении Rocks Player.
Ответ 14
создайте xml Drawable resource file под res->drawable и назовите его, например, checkbox_custom_01.xml
Загрузите свои собственные файлы изображений флажка (я рекомендую png) в вашу папку res->drawable .
Затем зайдите в свой файл макета и измените свой флажок на
вы можете настроить что угодно, пока android:button указывает на правильный файл XML, который вы создали ранее.
ПРИМЕЧАНИЕ к NEWBIES: хотя это необязательно, тем не менее, хорошая практика — назвать ваш флажок уникальным идентификатором во всем дереве раскладки.
Ответ 15
Вы можете изменить цвет фона , вставив его внутри
Ответ 16
Вы должны попробовать под кодом. Он работает для меня.
Ответ 17
Если вы собираетесь использовать значки android, как описано выше.
.. это хороший вариант, но для этого нужно работать — я обнаружил, что вам нужно добавить логику переключения, чтобы показать/скрыть галочку, например:
Ответ 18
Вы можете использовать следующие два свойства в «colors.xml»
colorControlNormal предназначен для нормального просмотра флажка, а colorControlActivated — для тех случаев, когда установлен флажок.
Ответ 19
100% надежный подход.
В моем случае у меня не было доступа к исходному файлу XML-разметки, так как я получил Checkbox от сторонней библиотеки MaterialDialog. Поэтому я должен решить это программно.
- Создайте ColorStateList в xml:
Затем примените его к флажку:
PS Кроме того, если кому-то интересно, вот как вы можете получить свой флажок в диалоговом окне MaterialDialog (если вы установите его с помощью .checkBoxPromptRes(. ) ):
Надеюсь это поможет.
Ответ 20
Существует гораздо более простой способ установить цвет программно. Используйте метод ниже, Checkbox.setButtonTintList(ColorStateList.valueOf(getContext(). GetColor (R.color.yourcolor)))
Ответ 21
Используйте это для динамического изменения фона флажка в вашем коде Java
//Настройка цвета фона на флажок. checkbox.setBackgroundColor(Color.parseColor( «# 00e2a5»));
Этот ответ был с этого сайта. Вы также можете использовать этот сайт для преобразования вашего цвета RGB в значение Hex, необходимое для подачи в parseColor
Источник
Как установить цвет рамки флажка
Граница флажка невидима на белом фоне.
Я играл с разными цветовыми параметрами без успеха. Мне нужна черная рамка. Да, есть примеры, чтобы сделать пользовательский флажок. Во всех доступных примерах нормальная коробка видна внутри новой формы. И растягиваемая форма узкая, без текста в android: text = «»
Но почему checkbox не выглядит нормально в обычном xml:
Есть идеи? Благодаря!
Вы можете использовать свойство
android:buttonTint=»what you want» чтобы установить цвет рамки флажка.
Слишком поздно отвечать, но я хотел бы поделиться тем, что сработало для меня. Вставьте под кодом. Это изменит цвет рамки CheckBox и textColor
styles.xml
Теперь в вашем main_activity.xml месте ниже кода CheckBox
Если выше стиль не работает, замените родительскую тему parent=»Theme.AppCompat.NoActionBar» с parent=»Theme.AppCompat.Light» . Надеюсь, это сработает.
Вы пытались пройти здесь , здесь и здесь ?
И в соответствии с вашим вопросом
Это потому, что иногда графическое представление Android не может отображать пользовательские представления, в этом случае вам нужно запустить код на эмуляторе или устройстве, чтобы проверить его.
UPDATE. Если вы не хотите использовать drawables, вы также можете определить форму для рисования в xml, например
Источник