Это довольно старый вопрос, но я думаю, что он все еще актуален, поэтому вот мой ответ:
Самый простой метод
lencinhaus ответ правильный. Это работает, но это можно сделать еще проще: просто добавьте еще один фон. В приведенном ниже примере используется стандартный Button
фон для более однородного внешнего вида:
<Spinner
android:id="@+id/my_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:prompt="@string/my_prompt"
android:background="@android:drawable/btn_default"
/>
Стиль, используемый в другом ответе, не более чем применение фона к виджету. Это можно сделать непосредственно в виджете, сохранив необходимость в новом XML-файле. Конечно, если вы все равно собираетесь применить стиль к блесне, в этом нет ничего плохого.
Почему?
Ключ к пониманию того, как это работает, заключается в описании PNG с 9 патчами . Линии справа и снизу используются для заполнения, то есть для предотвращения использования некоторого пространства его содержимым. В этом случае текст внутри. Стандартный фон Spinner использует изображение со стрелкой справа, которая находится за пределами используемой текстовой области. См. Рисунок 1 ниже для иллюстрации:
Рисунок 1. Оригинальный Spinner Bacground 9-патч PNG http://i56.tinypic.com/3026kw4.png
Рисунок 1. Оригинальный Spinner
задний 9-патч PNG.
Недостаточно просто убрать стрелку, поскольку там остается отступ. Вам необходимо использовать новое изображение с 9-участками с уменьшенным заполнением (см. Рисунок 2 для примера, основанного на рис. 1) или использовать одно из предварительно скомпилированных изображений с 9-кусочками без такого большого отступа, например, для EditText
(@android:drawable/edit_text
) или Button
(@android:drawable/btn_default
).
Рис. 2. Модифицированная задняя часть PNG с 9 участками PNG с уменьшенным заполнением http://i52.tinypic.com/2jfaxkw.png
Рисунок 2. Модифицированный Spinner
bacground 9-patch PNG с уменьшенным заполнением.
Понимание этого позволит вам создавать свои собственные фоны для Spinner
(и, фактически, для любого виджета).
Лучшее объяснение файлов с 9 патчами можно найти здесь
Создать файлы с помощью исполняемого файла draw9patch из SDK очень просто ( читайте об этом здесь ), но ничто не мешает вам использовать Photoshop или GIMP вместо. Помните, что PNG с 9 патчами - это просто PNG! Единственное предостережение - убедиться, что вы рисуете только на внешние линии пикселей, а остальные пиксели полностью прозрачны. Сглаживание вблизи границы может привести к неожиданным результатам.