Android: menggabungkan teks & gambar pada Tombol atau ImageButton
I'm mencoba untuk memiliki gambar (sebagai latar belakang) pada tombol dan tambahkan secara dinamis, tergantung pada apa yang's terjadi selama run-time, beberapa teks di atas/di atas gambar.
Jika saya menggunakan ImageButton
I don't bahkan memiliki kemungkinan untuk menambahkan teks.
Jika saya menggunakan Tombol
saya dapat menambahkan teks, tetapi hanya menentukan gambar dengan android:drawableBottom
dan mirip atribut XML seperti yang didefinisikan di sini.
Namun atribut-atribut ini hanya menggabungkan teks & gambar x - dan y-dimensi, yang berarti aku bisa menggambar gambar di sekitar teks, tetapi tidak di bawah/di bawah teks (dengan sumbu-z didefinisikan sebagai yang keluar dari layar).
Saran tentang cara untuk melakukan ini? Satu ide akan memperpanjang Tombol
atau ImageButton
dan menimpa draw()
-metode. Tapi dengan saya saat ini tingkat pengetahuan I don't benar-benar tahu bagaimana untuk melakukan hal ini (2D rendering). Mungkin seseorang dengan pengalaman lebih tahu solusi atau setidaknya beberapa petunjuk untuk memulai?
Untuk pengguna yang hanya ingin menempatkan Latar belakang, Ikon-Gambar dan Teks dalam satu
Tombol
dari file yang berbeda: Set padaTombol
latar belakang, drawableTop/Bawah/Rigth/Kiri dan padding atribut.Untuk lebih canggih pengaturan anda juga dapat menggunakan
RelativeLayout
dan membuatnya dapat diklik.Tutorial: Besar tutorial yang mencakup kedua kasus: http://izvornikod.com/Blog/tabid/82/EntryId/8/Creating-Android-button-with-image-and-text-using-relative-layout.aspx
Ada's solusi yang jauh lebih baik untuk masalah ini.
Hanya mengambil normal
Button
dan menggunakandrawableLeft
dangravity
atribut.Dengan cara ini anda mendapatkan tombol yang menampilkan ikon di sisi kiri tombol dan teks di situs yang tepat ikon vertikal berpusat.
Anda dapat menghubungi
setBackground()
diTombol
untuk mengatur latar belakang tombol.Teks yang akan ditampilkan di atas latar belakang.
Jika anda sedang mencari sesuatu yang mirip dalam xml yang ada adalah:
android:latar belakang
atribut yang bekerja dengan cara yang sama.Hanya menggunakan LinearLayout dan berpura-pura itu's
Tombol
settinglatar belakang
dan dapat diklik adalah kunci:hanya mengganti
dengan
izz tipuan yang bagus.. ;)
Aku mengambil pendekatan yang berbeda dari yang tercantum di sini, dan itu bekerja dengan sangat baik, jadi saya ingin berbagi.
I'm menggunakan Gaya untuk membuat custom button dengan gambar di sebelah kiri dan teks di kanan-tengah. Cukup ikuti 4 "langkah mudah" di bawah ini:
I. Membuat anda 9 patch menggunakan setidaknya 3 berbeda PNG file 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 men-download atau membuat 24x24 PNG ikon.
ic_your_icon.png
Simpan semua di drawable/ folder pada perangkat Android anda proyek.
II. Membuat sebuah file XML yang disebut button_selector.xml dalam proyek anda di bawah drawable/ folder. Negara-negara harus menjadi seperti ini:
III. Pergi ke nilai-nilai/ folder dan membuka atau membuat styles.xml file dan membuat kode XML berikut:
ButtonNormalTextWithIcon adalah "gaya anak" karena itu adalah memperluas ButtonNormalText ("orang tua gaya").
Perhatikan bahwa mengubah drawableLeft di ButtonNormalTextWithIcon gaya, untuk drawableRight, drawableTop atau drawableBottom anda dapat menempatkan ikon di posisi lain yang berkenaan dengan teks.
IV. Pergi ke tata letak/ folder di mana anda memiliki XML untuk UI dan pergi ke Tombol di mana anda ingin menerapkan gaya dan membuatnya terlihat seperti ini:
Dan... voilà! Anda punya tombol dengan gambar di samping kiri.
Bagi saya, ini adalah cara yang lebih baik untuk melakukannya! karena melakukannya dengan cara ini anda dapat mengatur ukuran teks tombol terpisah dari icon yang anda inginkan untuk menampilkan dan menggunakan latar belakang yang sama drawable untuk beberapa tombol dengan ikon yang berbeda menghormati UI Android Panduan menggunakan gaya.
Anda juga dapat membuat tema untuk Aplikasi anda dan tambahkan "orang tua gaya" untuk itu agar semua tombol terlihat sama, dan menerapkan "gaya anak" dengan ikon hanya di mana anda membutuhkannya.
Anda dapat menggunakan
drawableTop
(jugadrawableLeft
, dll) untuk gambar dan mengatur teks di bawah gambar dengan menambahkangravity
kiri|center_vertical
Penting Update
Untuk vektor drawable
Jika anda menggunakan vektor ditarik, maka anda harus
1.1.0-alpha01
, sehingga appcompat versi harus setidaknya1.1.0-alpha01
. Saat ini versi terbaru adalah1.1.0-alpha02
, menggunakan versi terbaru untuk keandalan yang lebih baik, lihat catatan rilis - link.AppCompatTextView
/AppCompatButton
/AppCompatEditText
app:drawableLeftCompat
,app:drawableTopCompat
,app:drawableRightCompat
,app:drawableBottomCompat
,app:drawableStartCompat
danaplikasi:drawableEndCompat
Untuk reguler drawable
Jika anda don't perlu vektor ditarik, maka anda dapat
android:drawableLeft
,android:drawableRight
,android:drawableBottom
,android:drawableTop
TextView
,Tombol
&EditText
atauAppCompat
kelas.Anda dapat mencapai Output seperti di bawah ini -
Mungkin solusi saya akan cocok untuk banyak pengguna, saya harap begitu.
Apa yang saya sarankan adalah membuat TextView dengan gaya anda. Ia bekerja untuk saya sempurna, dan telah mendapat semua fitur, seperti tombol.
Pertama-tama mari kita membuat tombol gaya, yang dapat anda gunakan di mana-mana...saya menciptakan button_with_hover.xml
Kedua, Memungkinkan membuat textview tombol.
Dan ini adalah hasilnya. Kemudian gaya tombol kustom anda dengan warna atau sifat-sifat lain dan margin. Good luck
http://www.mokasocial.com/2010/04/create-a-button-with-an-image-and-text-android/
Kode ini bekerja untuk saya sempurna
Anda dapat menggunakan ini:
bahwa aku telah menempatkan gambar sebagai
background
dan juga menambahkan teks..!