Это довольно старый вопрос, но я думаю, что он все еще актуален, поэтому вот мой ответ:
Самый простой метод
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-файле. Конечно, если вы все равно собираетесь применить стиль к счетчику, в таком подходе нет ничего плохого.
Почему?
Ключ к пониманию того, как это работает, лежит в описании 9-исправлений PNG. Строки справа и внизу используются для заполнения, т. е. для того, чтобы некоторое пространство не использовалось его содержимым. В данном случае текст внутри. Стандартный фон Spinner использует изображение со стрелкой справа, которое находится за пределами используемой текстовой области. См. иллюстрацию на рис. 1 ниже:
http://tinypic.com/images/404.gif
Рис. 1. Исходный Spinner
фоновый 9-патч PNG.
Просто удалить стрелку недостаточно, так как отступ остается. Вам нужно использовать новое изображение с 9 патчами с уменьшенным отступом (см. рис. 2 для примера, основанного на рис. 1) или использовать одно из предварительно скомпилированных изображений с 9 патчами без такого большого отступа, например, для EditText
(< strong>@android:drawable/edit_text
) или Button
(@android:drawable/btn_default
).
Рисунок 2. Модифицированный Spinner
фоновый 9-элементный PNG с уменьшенным отступом.
Понимание этого позволит вам создавать свои собственные фоны для Spinner
(и, собственно, для любого виджета).
Лучшее объяснение файлов с 9 исправлениями можно найти здесь
Создать файлы с исполняемым файлом draw9patch из SDK очень просто (прочитайте об этом здесь), но ничто не мешает вам использовать Photoshop или Gimp< /strong> вместо этого. Помните, PNG с 9 патчами — это просто PNG! Единственное предостережение — убедитесь, что вы рисуете только внешние линии пикселей, а остальные пиксели полностью прозрачны. Сглаживание вблизи границы может привести к неожиданным результатам.
person
Aleadam
schedule
08.05.2011