Пользовательский флажок

Есть ли простой способ использовать пользовательское изображение для флажка? Я хочу дублировать «звездное» поведение gmail. Поэтому я хочу иметь флажок, который, когда проверяется, является заполненной звездой. И когда unchecked – пустая звезда. Должен ли я использовать изображение и самостоятельно выполнять свою логику?

8 Solutions collect form web for “Пользовательский флажок”

Флажки, являющиеся дочерними элементами Button, вы можете просто указать свой флажок фоновым изображением с несколькими состояниями, как описано здесь , в разделе «Стиль кнопки»:

… и приведены здесь :

Создайте переключатель выбора флажков:

 < ?xml version="1.0" encoding="utf-8"?>      

Убедитесь, что ваш флажок подобен этому android:button="@drawable/checkbox_selector"

  

Скопируйте файл btn_check.xml с сайта android-sdk / platform / android – # / data / res / drawable в выпадающую папку вашего проекта и измените состояния изображения «включено» и «выключено» на свои пользовательские изображения.

Тогда вашему xml просто потребуется android:button="@drawable/btn_check"

  

Если вы хотите использовать разные значки по умолчанию для Android, вы можете использовать android:button="@android:drawable/..."

Если у вас есть открытый код Android, вы можете найти определение стилей в разделе:
SRC / каркасы / базовые / основные / RES / RES / значения

  

Попробуй –

 package com; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; public class CheckBoxImageView extends ImageView implements View.OnClickListener { boolean checked; int defImageRes; int checkedImageRes; OnCheckedChangeListener onCheckedChangeListener; public CheckBoxImageView(Context context, AttributeSet attr, int defStyle) { super(context, attr, defStyle); init(attr, defStyle); } public CheckBoxImageView(Context context, AttributeSet attr) { super(context, attr); init(attr, -1); } public CheckBoxImageView(Context context) { super(context); } public boolean isChecked() { return checked; } public void setChecked(boolean checked) { this.checked = checked; setImageResource(checked ? checkedImageRes : defImageRes); } private void init(AttributeSet attributeSet, int defStyle) { TypedArray a = null; if (defStyle != -1) a = getContext().obtainStyledAttributes(attributeSet, R.styleable.CheckBoxImageView, defStyle, 0); else a = getContext().obtainStyledAttributes(attributeSet, R.styleable.CheckBoxImageView); defImageRes = a.getResourceId(0, 0); checkedImageRes = a.getResourceId(1, 0); checked = a.getBoolean(2, false); a.recycle(); setImageResource(checked ? checkedImageRes : defImageRes); setOnClickListener(this); } @Override public void onClick(View v) { checked = !checked; setImageResource(checked ? checkedImageRes : defImageRes); onCheckedChangeListener.onCheckedChanged(this, checked); } public void setOnCheckedChangeListener(OnCheckedChangeListener onCheckedChangeListener) { this.onCheckedChangeListener = onCheckedChangeListener; } public static interface OnCheckedChangeListener { void onCheckedChanged(View buttonView, boolean isChecked); } } 

Добавьте этот атрибут –

      

Используйте как –

   

Он исправит все ваши проблемы.

Другой вариант – использовать ToggleButton с нулевым фоном и настраиваемую кнопку.

Ниже приведен пример, который также включает селектор в цвет текста.

  

toggle_selector.xml

 < ?xml version="1.0" encoding="utf-8"?>     

toggle_text.xml

 < ?xml version="1.0" encoding="utf-8"?>     

Рез / рисуем / day_selector.xml

  < ?xml version="1.0" encoding="utf-8"?>      

разреш / макет / my_layout.xml

  

Если вы используете пользовательские адаптеры, чем андроид: focusable = “false” и андроид: focusableInTouchMode = “false” – это nessesury, чтобы элементы списка могли переключаться при использовании флажка.

  

В drawable> checkbox_layout.xml ”

      
  • Сначала вызовите removeView () родителя ребенка
  • Обнаружение, если был получен ответ на исходящий вызов
  • Android: Разница между Parcelable и Serializable?
  • TextView.setTextSize ведет себя ненормально - как установить размер текстового изображения динамически для разных экранов
  • Как сделать телефонный звонок, используя намерение в Android?
  • android как работать с asynctasks progressdialog
  • Получение проблемы при проверке динамически созданного флажка через просмотр списка
  • Android - получить детей внутри представления?
  • Класс Android LocationClient устарел, но используется в документации
  • Как реализовать ListView без ListActivity? (используйте только действие)
  • Обнаружение прокрутки вверх и прокрутка вниз в ListView
  • Interesting Posts

    Ошибка установки Notepad ++: установка плагина не выполнена

    «Удаленный сертификат недействителен в соответствии с процедурой проверки». Используя SMTP-сервер Gmail

    Копирование одной структуры в другую

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

    В чем разница между def foo = {} и def foo () = {} в Scala?

    Могу ли я использовать более 16 ГБ оперативной памяти для Windows 7 Home Premium?

    Сравнение строк и преобразование строк в Java

    Запуск перфоратора без прав root

    Монтируемая файловая система, которая автоматически разделяет файлы

    Центрировать карту в d3 с учетом объекта geoJSON

    Как получить доступ к журналу вызовов для Android?

    Безопасное получение файла с компьютера Mac с помощью вредоносного ПО

    Android. Мне нужны некоторые пояснения fragmentов к действиям и представлениям.

    Преобразование строки JSON в объект C #

    Есть ли способ включить «божественный режим» в Windows 8, как в Windows 7?

    Давайте будем гением компьютера.