Ich habe einen anderen Ansatz als die hier genannten gewählt, und er funktioniert wirklich gut, so dass ich ihn mit Ihnen teilen möchte.
Ich verwende einen Stil, um eine benutzerdefinierte Schaltfläche mit einem Bild auf der linken Seite und einem Text in der Mitte rechts zu erstellen. Folgen Sie einfach den 4 "einfachen Schritten" unten:
I. Erstellen Sie Ihre 9 Patches mit mindestens 3 verschiedenen PNG-Dateien und dem Tool, das Sie unter: /YOUR_OWN_PATH/Android-sdk-mac_x86/tools/./draw9patch. Danach solltest du folgendes haben:
button_normal.9.png, button_focused.9.png und button_pressed.9.png
Laden Sie dann ein 24x24 PNG-Symbol herunter oder erstellen Sie ein solches.
ic_Ihr_Icon.png
Speichern Sie alles in dem Ordner drawable/ in Ihrem Android-Projekt.
II. Erstellen Sie eine XML-Datei mit dem Namen button_selector.xml in Ihrem Projekt unter dem Ordner drawable/. Die Zustände sollten wie folgt aussehen:
<item android:state_pressed="true" android:drawable="@drawable/button_pressed" />
<item android:state_focused="true" android:drawable="@drawable/button_focused" />
<item android:drawable="@drawable/button_normal" />
III. Gehen Sie zum Ordner values/ und öffnen oder erstellen Sie die Datei styles.xml und erstellen Sie den folgenden XML-Code:
<style name="ButtonNormalText" parent="@android:style/Widget.Button">
<item name="android:textColor" >@color/black</item>
<item name="android:textSize" >12dip</item>
<item name="android:textStyle" >bold</item>
<item name="android:height" >44dip</item>
<item name="android:background" >@drawable/button_selector</item>
<item name="android:focusable" >true</item>
<item name="android:clickable" >true</item>
</style>
<style name="ButtonNormalTextWithIcon" parent="ButtonNormalText">
<item name="android:drawableLeft" >@drawable/ic_your_icon</item>
</style>
ButtonNormalTextWithIcon ist ein "untergeordneter Stil", weil er ButtonNormalText (den "übergeordneten Stil") erweitert.
Beachten Sie, dass Sie durch Ändern von drawableLeft im Stil ButtonNormalTextWithIcon in drawableRight, drawableTop oder drawableBottom das Symbol in einer anderen Position in Bezug auf den Text platzieren können.
IV. Gehen Sie in den Ordner "Layout/Ordner", in dem Sie Ihr XML für die Benutzeroberfläche gespeichert haben, und gehen Sie zu der Schaltfläche, auf die Sie den Stil anwenden möchten, und lassen Sie sie so aussehen:
<Button android:id="@+id/buttonSubmit"
android:text="@string/button_submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/ButtonNormalTextWithIcon" ></Button>
Und... voilà! Sie haben Ihren Button mit einem Bild auf der linken Seite.
Für mich ist das der bessere Weg! Denn so kann man die Textgröße der Schaltfläche getrennt vom anzuzeigenden Symbol verwalten und dieselbe Hintergrundgrafik für mehrere Schaltflächen mit unterschiedlichen Symbolen verwenden, wobei die Android UI Guidelines mit Stilen eingehalten werden.
Sie können auch ein Thema für Ihre App erstellen und den "übergeordneten Stil" hinzufügen, damit alle Schaltflächen gleich aussehen, und den "untergeordneten Stil" mit dem Symbol nur dort anwenden, wo Sie es benötigen.