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

Есть ли простой способ использовать пользовательское изображение для флажка? Я хочу дублировать «звездное» поведение 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 ”

      
  • ListView повторно использует представления, когда ... Я не хочу, чтобы он
  • В чем разница между различными методами получения контекста?
  • Как добавить fragment внутри ViewPager с помощью Nested Fragment (Android 4.2)
  • Android - TimePicker минут до 15
  • PopupWindow $ BadTokenException: Невозможно добавить null-token null недействительно
  • Как получить файл журнала с устройства Android?
  • Как получить сертификат отпечатка SHA-1 в Android Studio для режима отладки?
  • как использовать getSharedPreferences в android
  • Как нарисовать заполненный треугольник в андроидном canvasе?
  • Как рассчитать расстояние между двумя точками, используя их долготу и значение широты
  • Как запустить службу Android при установке
  • Давайте будем гением компьютера.