Размер checkbox android studio

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:

Также необходимо подготовить два изображения для двух состояний флажков — выбран и не выбран. В нашем случае это две звезды — серая и жёлтая.

Читайте также:  Расширения для оперы android

Осталось прописать селектор в компоненте 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

Если запустить пример на старом устройстве, то никакой анимации не увидим, но код будет работать без ошибок. На новых устройствах анимация будет работать.

Источник

Android: Как изменить размер CheckBox?

Я хотел бы сделать CheckBox немного меньше/больше, как я могу это сделать?

ОТВЕТЫ

Ответ 1

Вам просто нужно установить соответствующие чертежи и установить их в флажке:

Трюк заключается в том, как установить чертежи. Вот хороший учебник об этом.

Ответ 2

Начиная с уровня API 11 существует другой подход:

Ответ 3

Вот лучшее решение, которое не обрезает и не размывает рисование, но работает только в том случае, если флажок не имеет текста (но у вас все еще может быть текст, это еще сложнее, см. в конце).

Какое предыдущее решение с scaleX и scaleY выглядело следующим образом:

У вас может быть текстовый флажок, добавив TextView рядом с ним и добавив прослушиватель кликов на родительский макет, а затем программно выбрав флажок.

Ответ 4

Ну, я нашел много ответов, но они отлично работают без текста, когда нам требуется текст с флажком, как в моем пользовательском интерфейсе

Здесь, согласно моему требованию к пользовательскому интерфейсу, я не могу не увеличивать TextSize, поэтому я попробовал другой вариант: scaleX и scaleY (установите флажок) и пользовательский селектор xml с изображениями .png (это также создает проблему с другим размером экрана)

Но у нас есть другое решение для этого, это Vector Drawable

Сделайте это в 3 шага.

Шаг 1: Скопируйте туда Vector Drawable в вашу папку для рисования

(Обратите внимание, что если вы работаете с Android Studio, вы также можете добавить эти векторные Drawable формы, щелкните правой кнопкой мыши на своей папке Drawable, затем New/Vector Asset, которая выбирает эти Drawable оттуда). Шаг 2. Создание Xml-селектора для check_box

Шаг 3: установите этот флажок в флажок

Вы можете изменить его ширину и высоту или viewportHeight и viewportWidth и fillColor также

Надеюсь, это поможет!

Ответ 5

чтобы установить размер флажка

тогда я устанавливаю поля как это

чтобы скорректировать местоположение этой ячейки.

Читайте также:  Jets n guns android

Ответ 6

Вот что я сделал, сначала установил:

а также установите

то в вашем Java-коде:

Это работает для меня, и, надеюсь, это сработает для вас!

Ответ 7

UPDATE: это работает только с API 17.

Чтобы добавить к другим блестящим ответам, которые уже заданы, вы можете сделать только галочку, размер которой разрешен.

CheckBox выводит свою высоту из ТЕКСТА, а также изображения.

Установите эти свойства в свой XML:

Конечно, это работает только если вы не хотите текста (работал у меня).

Без этих изменений CheckBox давал мне большой запас вокруг моего изображения, как упоминал Джо

Ответ 8

Я нашел способ сделать это, не создавая собственные изображения. Другими словами, изображение системы масштабируется. Я не претендую на то, что решение идеально; если кто-то знает способ сократить некоторые из этапов, я буду рад узнать, как это сделать.

Сначала я поместил следующее в основной класс активности проекта (WonActivity). Это было взято непосредственно из Qaru — спасибо ребятам!

Во-вторых, я создал класс для масштабирования. Обратите внимание, что он полностью отличается от стандартного ScaleDrawable.

Наконец, я определил класс флажка.

Что это. Если вы разместите WonCheckBox в своем представлении и примените setHeight(), изображение флажка будет иметь нужный размер.

Ответ 9

используйте этот код.

добавить новый drawable: my_checkbox.xml

и end create 2 drawable:

а также checkbox_on_background.xml

Ответ 10

Вы можете попробовать следующее решение, чтобы изменить размер пользовательского флажка, установив для следующих свойств значение Checkbox в файле макета. Работа для меня

Android: Scalex = «0.8» Android: ScaleY = «0.8»

добавить следующие строки в файл для рисования

Ответ 11

Предположим, что ваш оригинальный XML:

затем просто удалите android:button=»@drawable/xml_above» в своем флажке xml и выполните масштабируемое масштабирование в java программно (уменьшите размер 150 до желаемого значения dp):

Ответ 12

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

Источник

Android: Как изменить размер CheckBox?

Я хотел бы сделать CheckBox немного меньше/больше, как я могу это сделать?

ОТВЕТЫ

Ответ 1

Вам просто нужно установить соответствующие чертежи и установить их в флажке:

Трюк заключается в том, как установить чертежи. Вот хороший учебник об этом.

Ответ 2

Начиная с уровня API 11 существует другой подход:

Ответ 3

Вот лучшее решение, которое не обрезает и не размывает рисование, но работает только в том случае, если флажок не имеет текста (но у вас все еще может быть текст, это еще сложнее, см. в конце).

Какое предыдущее решение с scaleX и scaleY выглядело следующим образом:

У вас может быть текстовый флажок, добавив TextView рядом с ним и добавив прослушиватель кликов на родительский макет, а затем программно выбрав флажок.

Ответ 4

Ну, я нашел много ответов, но они отлично работают без текста, когда нам требуется текст с флажком, как в моем пользовательском интерфейсе

Читайте также:  Котограм телеграм язык для андроид

Здесь, согласно моему требованию к пользовательскому интерфейсу, я не могу не увеличивать TextSize, поэтому я попробовал другой вариант: scaleX и scaleY (установите флажок) и пользовательский селектор xml с изображениями .png (это также создает проблему с другим размером экрана)

Но у нас есть другое решение для этого, это Vector Drawable

Сделайте это в 3 шага.

Шаг 1: Скопируйте туда Vector Drawable в вашу папку для рисования

(Обратите внимание, что если вы работаете с Android Studio, вы также можете добавить эти векторные Drawable формы, щелкните правой кнопкой мыши на своей папке Drawable, затем New/Vector Asset, которая выбирает эти Drawable оттуда). Шаг 2. Создание Xml-селектора для check_box

Шаг 3: установите этот флажок в флажок

Вы можете изменить его ширину и высоту или viewportHeight и viewportWidth и fillColor также

Надеюсь, это поможет!

Ответ 5

чтобы установить размер флажка

тогда я устанавливаю поля как это

чтобы скорректировать местоположение этой ячейки.

Ответ 6

Вот что я сделал, сначала установил:

а также установите

то в вашем Java-коде:

Это работает для меня, и, надеюсь, это сработает для вас!

Ответ 7

UPDATE: это работает только с API 17.

Чтобы добавить к другим блестящим ответам, которые уже заданы, вы можете сделать только галочку, размер которой разрешен.

CheckBox выводит свою высоту из ТЕКСТА, а также изображения.

Установите эти свойства в свой XML:

Конечно, это работает только если вы не хотите текста (работал у меня).

Без этих изменений CheckBox давал мне большой запас вокруг моего изображения, как упоминал Джо

Ответ 8

Я нашел способ сделать это, не создавая собственные изображения. Другими словами, изображение системы масштабируется. Я не претендую на то, что решение идеально; если кто-то знает способ сократить некоторые из этапов, я буду рад узнать, как это сделать.

Сначала я поместил следующее в основной класс активности проекта (WonActivity). Это было взято непосредственно из Qaru — спасибо ребятам!

Во-вторых, я создал класс для масштабирования. Обратите внимание, что он полностью отличается от стандартного ScaleDrawable.

Наконец, я определил класс флажка.

Что это. Если вы разместите WonCheckBox в своем представлении и примените setHeight(), изображение флажка будет иметь нужный размер.

Ответ 9

используйте этот код.

добавить новый drawable: my_checkbox.xml

и end create 2 drawable:

а также checkbox_on_background.xml

Ответ 10

Вы можете попробовать следующее решение, чтобы изменить размер пользовательского флажка, установив для следующих свойств значение Checkbox в файле макета. Работа для меня

Android: Scalex = «0.8» Android: ScaleY = «0.8»

добавить следующие строки в файл для рисования

Ответ 11

Предположим, что ваш оригинальный XML:

затем просто удалите android:button=»@drawable/xml_above» в своем флажке xml и выполните масштабируемое масштабирование в java программно (уменьшите размер 150 до желаемого значения dp):

Ответ 12

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

Источник

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