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?

Mengomentari pertanyaan (2)

Untuk pengguna yang hanya ingin menempatkan Latar belakang, Ikon-Gambar dan Teks dalam satu Tombol dari file yang berbeda: Set pada Tombol 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

Komentar (9)

Ada's solusi yang jauh lebih baik untuk masalah ini.

Hanya mengambil normal Button dan menggunakan drawableLeft dan gravity atribut.

Dengan cara ini anda mendapatkan tombol yang menampilkan ikon di sisi kiri tombol dan teks di situs yang tepat ikon vertikal berpusat.

Komentar (9)
Larutan

Anda dapat menghubungi setBackground() di Tombol 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.

Komentar (5)

Komentar (3)

Hanya menggunakan LinearLayout dan berpura-pura itu's Tombol setting latar belakang dan dapat diklik adalah kunci:






Komentar (3)

hanya mengganti

android:background="@drawable/icon"

dengan

android:background="@android:color/transparent"
android:drawableTop="@drawable/[your background image here]"

izz tipuan yang bagus.. ;)

Komentar (0)

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:


    @color/black
    12dip
    bold
    44dip
    @drawable/button_selector
    true
    true



    @drawable/ic_your_icon

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.

Komentar (2)
Komentar (0)

Anda dapat menggunakan drawableTop (juga drawableLeft, dll) untuk gambar dan mengatur teks di bawah gambar dengan menambahkan gravity kiri|center_vertical

Komentar (0)

Penting Update

Don't penggunaan normal android:drawableLeft dll... dengan vektor drawables, yang lain itu akan kecelakaan di menurunkan API versi. (Saya hadapi dalam hidup app)

Untuk vektor drawable

Jika anda menggunakan vektor ditarik, maka anda harus

  • Apakah anda bermigrasi ke AndroidX? jika tidak anda harus bermigrasi ke AndroidX pertama. Hal ini sangat sederhana, melihat apa yang androidx, dan bagaimana untuk bermigrasi?
  • Album ini dirilis dalam versi 1.1.0-alpha01, sehingga appcompat versi harus setidaknya 1.1.0-alpha01. Saat ini versi terbaru adalah 1.1.0-alpha02, menggunakan versi terbaru untuk keandalan yang lebih baik, lihat catatan rilis - link.

implementasi 'androidx.appcompat:appcompat:1.1.0-alpha02'

  • Gunakan AppCompatTextView/AppCompatButton/AppCompatEditText
  • Gunakan app:drawableLeftCompat, app:drawableTopCompat, app:drawableRightCompat, app:drawableBottomCompat, app:drawableStartCompat dan aplikasi:drawableEndCompat

Untuk reguler drawable

Jika anda don't perlu vektor ditarik, maka anda dapat

  • gunakan android:drawableLeft, android:drawableRight, android:drawableBottom, android:drawableTop
  • Anda dapat menggunakan salah regular TextView, Tombol & EditText atau AppCompat kelas.

Anda dapat mencapai Output seperti di bawah ini -

Komentar (3)

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

    <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

























Kedua, Memungkinkan membuat textview tombol.

Dan ini adalah hasilnya. Kemudian gaya tombol kustom anda dengan warna atau sifat-sifat lain dan margin. Good luck

Komentar (4)


android:drawableLeft
android:drawableRight
android:drawableBottom
android:drawableTop

http://www.mokasocial.com/2010/04/create-a-button-with-an-image-and-text-android/

Komentar (0)

Kode ini bekerja untuk saya sempurna







Komentar (1)

Anda dapat menggunakan ini:



bahwa aku telah menempatkan gambar sebagai background dan juga menambahkan teks..!

Komentar (0)
Komentar (1)