Вторник, 12.12.2017, 09:17
Поиск
Никнэйм
Сертификат на никнейм Olelucoye, зарегистрирован на Тимофеев Константин Михайлович
Зарегистрируй свой никнейм
Обратная связь
olelucoye.tk@yandex.ru
Реклама AdSense
Реклама
Друзья сайта
  • Лига медицинского права
  • Гостиница "Зай"
  • FAQ по системе
  • Инструкции для uCoz
  • Главная » Статьи » Андроид разработка

    Кастомизация EditText

    Придание пользовательского вида для EditText производится так же как для кнопок, чекбоксов и т.п. - с помощью селектора. Но есть некоторые нюансы, а именно в количестве состояний - для EditText'а их семь (!!!). Правда в некоторых источниках я встречал использование пяти и шести, но это скорее всего пропуск некоторых состояний. Во время тестирования я убедился, что в действительности, по-крайней мере для моих нужд, достаточно четырех. Поэтому я использовал только 4 изображения. Тоже, кстати, девятипатчевые (читать тут и тут). Вот они:

    Текстовое поле не доступно для выбора и редактирования:

    Текстовое поле доступно для редактирования, но не в фокусе:

    Текстовое поле доступно и находится в фокусе:

    Текстовое поле активно (можно вводить текст):

    Итак, какие состояния есть у EditText'а:

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:state_window_focused="false" android:state_enabled="true"  android:drawable="@drawable/textfield_unfocused"></item>
      <item android:state_window_focused="false" android:state_enabled="false"  android:drawable="@drawable/textfield_disabled"></item>
      <item android:state_pressed="true" android:drawable="@drawable/textfield_focused"></item>
      <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_active">  </item>
      <item android:state_enabled="true" android:drawable="@drawable/textfield_unfocused"></item>
      <item android:state_focused="true" android:drawable="@drawable/textfield_disabled"></item>
      <item android:drawable="@drawable/textfield_disabled"></item>
    </selector>

    Красным текстом обозначены использованные мной изображения. Селектор этот прикручиваем к свойству android:background текстового поля.

    Что означают состояния:

    state_window_focused - состояние активности окна приложения

    state_enabled - доступность элемента

    state_pressed - элемент нажат (выбран)

    state_focused - находится ли элемент в фокусе

     

    З.Ы. Для сравнения приведу селектор с рекомендуемыми типами изображений. 

    <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:state_window_focused="false" android:state_enabled="true"  android:drawable="@drawable/textfield_default"></item>
      <item android:state_window_focused="false" android:state_enabled="false"  android:drawable="@drawable/textfield_disabled"></item>
      <item android:state_pressed="true" android:drawable="@drawable/textfield_pressed"></item>
      <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_selected"> </item>
      <item android:state_enabled="true" android:drawable="@drawable/textfield_default"></item>
      <item android:state_focused="true" android:drawable="@drawable/textfield_disabled_selected"></item>
      <item android:drawable="@drawable/textfield_disabled"></item>
    </selector>

    Два изображения повторяются (default и disabled). Так что всего изображений - пять. Для чего придуманы состояния с одинаковым отображением я не понял, но Гуглу виднее.

    Кастомизация SeekBar'а

    9-patch изображения для Андроид

    Кастомный ползунок в виде дуги (аналог SeekBar)

    Смартфон DEXP Ixion ML 5, обзор.

    Анимация в Андроид.

    Кастомизация элементов управления в Андроид.

    Создание кастомного View-элемента интерфейса.

    Создание виджета-часы с кастомным шрифтом

    Будильник для Андроид "Разбуди меня"

    Программируем калькулятор на андроид. Урок 1.

    Пластилиновый калькулятор для Андроид.

    Категория: Андроид разработка | Добавил: Olelucoye (12.03.2015)
    Просмотров: 1737
    | Теги: кастомизация, Selector, java, EditText, андроид | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Меню сайта
    Категории раздела
    Андроид разработка [23]
    libGDX [24]
    Мои андроид проекты [6]
    Excel [7]
    Железяки [5]
    Скрипты в блокноте [4]
    Разное [1]
    Форма входа
    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Яндекс Метрика
    Яндекс.Метрика