Bagaimana cara menambahkan ikon di dalam tampilan EditText di Android?


141

Saya ingin menambahkan ikon "pencarian" untuk muncul di EditTextdalam di tepi kiri? seperti kotak pencarian di aplikasi Android Facebook?

Jawaban:


432

Gunakan android:drawableLeftproperti di EditText.

<EditText
    ...     
    android:drawableLeft="@drawable/my_icon" />

3
maaf untuk pertanyaan yang tidak jelas, saya ingin menambahkan tombol, jadi ketika saya klik di atasnya, ia melakukan beberapa tindakan
Adham

20
Ini hanya solusi yang saya harapkan, mengingat judul pencarian.
Thomas Ahle

32
Juga, sesuaikan bantalan menggunakan drawablePaddingproperti.
Ryan R

jadi apa yang harus menjadi ukuran ikon yang dapat digambar dan di folder mana saya harus meletakkannya?
Kalpesh Lakhani

2
@KalpeshLakhani: Biasanya edittext dan drawables harus 32dp sesuai dengan pedoman desain android: developer.android.com/design/style/metrics-grids.html
Lee Yi Hong

30

Anda dapat mengatur drawableLeft dalam XML seperti yang disarankan oleh marcos , tetapi Anda mungkin juga ingin mengaturnya secara terprogram - misalnya sebagai respons terhadap suatu peristiwa. Untuk melakukan ini gunakan metode setCompoundDrawablesWithIntrincisBounds (int, int, int, int) :

EditText editText = findViewById(R.id.myEditText);

// Set drawables for left, top, right, and bottom - send 0 for nothing
editTxt.setCompoundDrawablesWithIntrinsicBounds(R.drawable.myDrawable, 0, 0, 0);

Ini menetapkan latar belakang ke EditText, bukan ikon / gambar di "Tepi Kiri" yang secara jelas disebutkan dalam pertanyaan.
Paresh Mayani

@ Pars - itulah sebabnya saya menghapus jawabannya. Saya sekarang telah diedit untuk memasukkan solusi terprogram di samping solusi XML asli.
Peter Ajtai

1
bagaimana cara menyembunyikan ikon ikon program? ketika kotak edit diklik?
Berburu

1
@Hunt - Cukup atur coumound drawable ke nullsaat tampilan diklik.
Peter Ajtai

27

Jika Anda ingin menggunakan drawable default Android, Anda dapat menggunakan @android:drawable/ic_menu_searchseperti ini:

<EditText android:id="@+id/inputSearch"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:drawableLeft="@android:drawable/ic_menu_search"
    android:hint="Search product.."
    android:inputType="textVisiblePassword"/>



-1

Gunakan tata letak relatif dan atur tombol agar rata kiri dari tampilan teks edit, dan atur padding kiri tampilan teks Anda ke ukuran tombol Anda. Saya tidak bisa memikirkan cara yang baik untuk melakukannya tanpa mengkodekan padding: /

Anda juga dapat menggunakan alat apk untuk menyortir unzip apk facebook dan melihat file tata letaknya.


1
Saya ingin menyebutkan bahwa dekompilasi melanggar hukum di banyak negara misalnya di seluruh Uni Eropa jadi harap berhati-hati :)
Paweł Byszewski
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.