Когда пытаетесь настроить Spinner по своему вкусу, что можете понаблюдать, как смотрятся системные ресурсы чтобы достичь желаемого результата компонента. К примеру, зайдите в папку...\sdk\platforms\android-18\data\res\drawable-xhdpi и поищите в нём файлы со словом spinner. Вы увидите, собственно ресурсы проданы за счет файлов NinePatch.
Создаём личный стиль для Spinner
У вас есть возможность сделать личные стили за счет файлов NinePatch. Создаёте три изображения для всевозможных состояний (возможно помимо прочего прибавить четвёртое для состояния disabled).
Дальше создаёте xml-файл, описывающий визуальные состояния составляющей (normal, selected, pressed, disabled). XML-файл и графика обязаны пребывать в одной папке андроид drawable.
Res/drawable/btn_dropdown. xml
После этого нужно было прописать свежую тему (или же отредактировать имеющуюся).
Res/values/themes. xml
Осталось прописать в атрибуте android:spinnerStyle разработанный стиль, дабы увидать красоту.
Лапа взамен треугольника
По умолчанию, у Spinner в правом нижнему углу применяется треугольник для раскрытия перечня. Продемонстрирую иной метод, использующий не файлы NinePatch, а xml-файлы и растровые изображения. Заодно заменим и наружный вид компонента.
В файле res/values/styles. xml добавим свежие строки для компонента:
Первая строчка ссылается на андроид ресурс gradient_spinner. Сделайте свежую папку res/drawable и в ней сделайте файл gradient_spinner. xml:
В данном файле есть гиперссылка на ресурс с растровым изображением spinner_arrow. Сделайте в графическом редакторе необходимое изображение, которое надлежит сменить треугольник. В моём случае это станет кошачья лапа. Сохраните рисунок под именем spinner_arrow. png в такой же папке drawable. При стремлении можете прибавить добавочные стили для фокуса, нажатия и т. п. (проследите первоначальный образчик для образца).
Подключаем разработанный стиль:
Запускаем образчик и смотрим андроид эффектом. Для сравнения ниже добавил второй Spinner с обыкновенным стилем. Мне может показаться на первый взгляд, наш вариант значительно интереснее и его хотелось бы применять по умолчанию во всех Android-приложениях.
Реклама
Комментариев нет:
Отправить комментарий
Примечание. Отправлять комментарии могут только участники этого блога.