Diese Frage ist schon ziemlich alt, aber ich denke, sie ist immer noch aktuell, deshalb hier meine Antwort:
Einfachste Methode
lencinhaus Antwort ist richtig. Es funktioniert, aber es kann noch einfacher gemacht werden: Fügen Sie einfach einen anderen Hintergrund hinzu. Das folgende Beispiel verwendet den Standard Button
Hintergrund für ein homogeneres Aussehen und Gefühl:
<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"
/>
Der Stil, der in der anderen Antwort verwendet wird, tut nicht mehr als einen Hintergrund auf das Widget anzuwenden. Das kann direkt im Widget geschehen, so dass keine neue Xml-Datei erforderlich ist. Natürlich, wenn Sie gehen, um einen Stil auf den Spinner sowieso anwenden, es ist nichts falsch mit diesem Ansatz.
Und warum?
Der Schlüssel zum Verständnis der Funktionsweise liegt in der Beschreibung der 9-Patch PNGs . Die Zeilen rechts und unten dienen zum Auffüllen, d. h., um zu verhindern, dass der Inhalt Platz wegnimmt. In diesem Fall ist das der Text im Inneren. Der Standardhintergrund von Spinner verwendet ein Bild mit einem Pfeil auf der rechten Seite, der sich außerhalb des nutzbaren Textbereichs befindet. Siehe Abbildung 1 unten zur Veranschaulichung:
Abbildung 1. Original Spinner-Hintergrund 9-patch PNG http://tinypic.com/images/404.gif
Abbildung 1. Original Spinner
Hintergrund 9-Patch PNG.
Es reicht nicht aus, den Pfeil zu entfernen, da die Polsterung bestehen bleibt. Sie müssen ein neues 9-Felder-Bild mit verringerter Füllung verwenden (siehe Abbildung 2 für ein Beispiel auf der Grundlage von Abbildung 1) oder eines der vorkompilierten 9-Felder-Bilder ohne so viel Füllung verwenden, z. B. die Bilder für EditText
( @android:drawable/edit_text
) o Button
( @android:drawable/btn_default
).
Abbildung 2. Geändert Spinner
Hintergrund 9-Patch PNG mit reduziertem Padding.
Wenn Sie dies verstehen, können Sie Ihre eigenen Hintergründe für die Spinner
(und in der Tat für jedes Widget).
Eine bessere Erklärung der 9-Patch-Dateien können hier gefunden werden
Es ist sehr einfach, die Dateien mit dem draw9patch ausführbare Datei aus dem SDK ( Lesen Sie hier darüber ), aber nichts hindert Sie daran, die Photoshop o Gimp stattdessen. Denken Sie daran, dass 9-Patch-PNGs nur einfache PNGs sind! Die einzige Einschränkung besteht darin, dass Sie nur die äußeren Linien der Pixel zeichnen dürfen und dass der Rest der Pixel vollständig transparent ist. Antialiasing in Grenznähe kann zu unerwarteten Ergebnissen führen.