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?

Adham
sumber

Jawaban:

432

Gunakan android:drawableLeftproperti di EditText.

<EditText
    ...     
    android:drawableLeft="@drawable/my_icon" />
marcosbeirigo
sumber
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);
Peter Ajtai
sumber
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"/>
Jonathan
sumber
3

Gunakan:

<EditText
    ..     
    android:drawableStart="@drawable/icon" />
Maher Abuthraa
sumber
-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.

Nathan Schwermann
sumber
1
Saya ingin menyebutkan bahwa dekompilasi melanggar hukum di banyak negara misalnya di seluruh Uni Eropa jadi harap berhati-hati :)
Paweł Byszewski