Android: создайте кнопку переключения с изображением и без текста.

возможно ли создать кнопку переключения на Android, у которой есть изображение, но нет текста? В идеале это выглядело бы так:

Кнопка переключения с изображением

Ive видел аналогичные должности, где ответ заключался в изменении фона, но я хочу сохранить макет Holo Light и просто поменять текст изображением.

Мне нужно иметь возможность программно изменить источник изображения,

Любые идеи, как я это сделал бы?

Если это невозможно сделать, есть ли способ, которым я могу включить и выключить обычную кнопку?

  1. Могу ли я заменить текст переключения на изображение

    Нет, мы не можем, хотя мы можем скрыть текст, переопределив стиль по умолчанию кнопки переключения, но все же это не даст нам кнопку переключения, которую вы хотите, поскольку мы не можем заменить текст изображением.

  2. Как я могу сделать обычную кнопку переключения

    Создайте файл ic_toggle в папке res/drawable

         

    Здесь @drawable/ic_slide_switch_on & @drawable/ic_slide_switch_off@drawable/ic_slide_switch_off вами изображения.

    Затем создайте другой файл в той же папке, назовите его ic_toggle_bg

          

    Теперь добавьте свою собственную тему (если у вас нет одного файла styles.xml в папке res/values/ )

       

    Это создаст пользовательскую кнопку переключения для вас.

  3. Как это использовать

    Используйте свой стиль и фон в своем представлении.

       

ToggleButton наследует от TextView поэтому вы можете установить чертежи, которые будут отображаться на четырех границах текста. Вы можете использовать это, чтобы отобразить значок, который вы хотите, поверх текста и скрыть фактический текст

  

Результат по сравнению с обычным ToggleButton выглядит так:

введите описание изображения здесь

Параметр «секунды» – использовать ImageSpan чтобы фактически заменить текст изображением. Выглядит немного лучше, так как значок находится в правильном положении, но не может быть выполнен с помощью макета xml напрямую.

Вы создаете простой ToggleButton

  

Затем установите «текст» программно

 ToggleButton button = (ToggleButton) findViewById(R.id.toggleButton3); ImageSpan imageSpan = new ImageSpan(this, android.R.drawable.ic_menu_info_details); SpannableString content = new SpannableString("X"); content.setSpan(imageSpan, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); button.setText(content); button.setTextOn(content); button.setTextOff(content); 

Результат здесь в середине – значок располагается немного ниже, так как он заменяет текст.

введите описание изображения здесь

создать toggle_selector.xml в res / drawable

      

примените селектор к кнопке переключения

  

Примечание: для удаления текста, который я использовал в приведенном выше коде

 textOff="" textOn="" 

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

https://gist.github.com/akshaydashrath/9662072

  • Выберите несколько изображений из фотоальбома на Android с помощью намерений
  • mylib.so имеет текстовые перестановки. Это напрасно тратит память и представляет угрозу безопасности. Пожалуйста исправьте
  • Как получить отчет о покрытии jacoco с помощью плагина Android gradle 0.10.0 или новее?
  • Добавить PhoneStateListener
  • Обосновать текст в Android-приложении, используя WebView, но представляя интерфейс TextView?
  • Как группировать андроидные уведомления, например whatsapp?
  • Android: отключить выбор текста в веб-просмотре
  • Как создать ColorStateList программно?
  • Обработка больших растровых изображений
  • Как сделать ListView прозрачным в Android?
  • Как объединить два mp3-файла в один (объединение / объединение)
  • Давайте будем гением компьютера.