Пользовательский флажок
Есть ли простой способ использовать пользовательское изображение для флажка? Я хочу дублировать «звездное» поведение gmail. Поэтому я хочу иметь флажок, который, когда проверяется, является заполненной звездой. И когда unchecked – пустая звезда. Должен ли я использовать изображение и самостоятельно выполнять свою логику?
- Как StaticLayout используется в Android?
- Пользовательские макеты уведомлений и цвета текста
- Разница между getExternalFilesDir и getExternalStorageDirectory ()
- Многострочный EditText с кнопкой «Готово»
- Может ли Android Toast быть дольше, чем Toast.LENGTH_LONG?
- Как сжимать код - предел метода 65k в dex
- Возвращаемое значение classа AsyncTask onPostExecute
- Выполнить код только один раз после того, как приложение установлено на Android-устройстве
- Принудительное применение для перезапуска при первом действии
- Снимок экрана Android с экрана Surface View показывает черный экран
- Как добавить нижний колонтитул в NavigationView - библиотеку дизайна поддержки Android?
- Как получить исходный код HTML из url в android?
- Недопустимое сообщение подписи GoogleSignatureVerifier (google play services 9.0.0)
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 ”