Saya mengambil pendekatan yang berbeda dari yang dinyatakan di sini, dan itu bekerja dengan sangat baik, jadi saya ingin membagikannya.
Saya menggunakan Style untuk membuat tombol kustom dengan gambar di sebelah kiri dan teks di kanan-tengah. Cukup ikuti 4 "langkah mudah" di bawah:
I. Buat 9 tambalan Anda menggunakan setidaknya 3 file PNG berbeda dan alat yang Anda miliki di: /YOUR_OWN_PATH/android-sdk-mac_x86/tools/./draw9patch. Setelah ini, Anda harus memiliki:
button_normal.9.png, button_focused.9.png dan button_pressed.9.png
Kemudian unduh atau buat ikon PNG 24x24.
ic_your_icon.png
Simpan semua dalam folder / drawable di proyek Android Anda.
II Buat file XML bernama button_selector.xml di proyek Anda di bawah drawable / folder. Negara harus seperti ini:
<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" />
AKU AKU AKU. Buka nilai / folder dan buka atau buat file styles.xml dan buat kode XML berikut:
<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 adalah "gaya anak" karena memperluas ButtonNormalText ("gaya induk").
Perhatikan bahwa mengubah drawableLeft dalam gaya ButtonNormalTextWithIcon menjadi drawableRight, drawableTop atau drawableBottom Anda dapat menempatkan ikon di posisi lain sehubungan dengan teks.
IV. Buka tata letak / folder tempat Anda memiliki XML untuk UI dan buka Tombol tempat Anda ingin menerapkan gaya dan buat tampilannya seperti ini:
<Button android:id="@+id/buttonSubmit"
android:text="@string/button_submit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/ButtonNormalTextWithIcon" ></Button>
Dan ... voila! Anda mendapatkan tombol Anda dengan gambar di sebelah kiri.
Bagi saya, ini adalah cara yang lebih baik untuk melakukannya! karena melakukannya dengan cara ini Anda dapat mengelola ukuran teks tombol secara terpisah dari ikon yang ingin Anda tampilkan dan menggunakan latar belakang yang sama untuk beberapa tombol dengan ikon berbeda yang menghormati Pedoman Android UI menggunakan gaya.
Anda juga dapat membuat tema untuk Aplikasi Anda dan menambahkan "gaya induk" ke dalamnya sehingga semua tombol terlihat sama, dan menerapkan "gaya anak" dengan ikon hanya di mana Anda membutuhkannya.