Ich habe einen anderen Ansatz gewählt als hier angegeben, und er funktioniert wirklich gut, deshalb wollte ich ihn teilen.
Ich verwende einen Stil, um eine benutzerdefinierte Schaltfläche mit Bild links und Text in der Mitte rechts zu erstellen. Befolgen Sie einfach die folgenden 4 "einfachen Schritte":
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 haben. Danach sollten Sie 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 es.
ic_your_icon.png
Speichern Sie alles im Zeichen- / Ordner Ihres Android-Projekts.
II. Erstellen Sie in Ihrem Projekt eine XML-Datei mit dem Namen button_selector.xml unter dem Ordner drawable /. Die Staaten sollten so sein:
<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", da es ButtonNormalText (den "übergeordneten Stil") erweitert.
Beachten Sie, dass Sie das Symbol durch Ändern von drawableLeft im ButtonNormalTextWithIcon-Stil in drawableRight, drawableTop oder drawableBottom an einer anderen Position in Bezug auf den Text platzieren können.
IV. Gehen Sie zu dem Layout / Ordner, in dem Sie Ihr XML für die Benutzeroberfläche haben, und gehen Sie zu der Schaltfläche, in der Sie den Stil anwenden möchten, und lassen Sie ihn 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 Knopf mit einem Bild auf der linken Seite.
Für mich ist das der bessere Weg! Auf diese Weise können Sie die Textgröße der Schaltfläche getrennt von dem Symbol, das Sie anzeigen möchten, verwalten und denselben Hintergrund verwenden, der für mehrere Schaltflächen mit unterschiedlichen Symbolen gezeichnet werden kann. Beachten Sie dabei die Richtlinien für die Android-Benutzeroberfläche mithilfe von Stilen.
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 ihn benötigen.