151

I want to add a "search" icon to appear inside an EditText in the left edge? such as search box in Facebook Android app?

Irfan DANISH
  • 7,957
  • 12
  • 39
  • 66
Adham
  • 61,516
  • 96
  • 221
  • 343

6 Answers6

474

Use the android:drawableLeft property on the EditText.

<EditText
    ...     
    android:drawableLeft="@drawable/my_icon" />
marcosbeirigo
  • 10,698
  • 6
  • 38
  • 57
34

You can set drawableLeft in the XML as suggested by marcos, but you might also want to set it programmatically - for example in response to an event. To do this use the method 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);
Community
  • 1
  • 1
Peter Ajtai
  • 55,701
  • 13
  • 120
  • 138
31

If you want to use Android's default drawable, you can use @android:drawable/ic_menu_search like this:

<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
  • 2,164
  • 1
  • 21
  • 28
6

Use :

<EditText
    ..     
    android:drawableStart="@drawable/icon" />
Maher Abuthraa
  • 16,698
  • 10
  • 75
  • 102
1

use android:drawbleStart propery on EditText

    <EditText
        ...     
        android:drawableStart="@drawable/my_icon" />
Rohit Jakhar
  • 689
  • 2
  • 9
  • 17
0

Use a relative layout and set the button the be align left of the edit text view, and set the left padding of your text view to the size of your button. I can't think of a good way to do it without hard coding the padding :/

You can also use apk tool to sorta unzip the facebook apk and take a look at its layout files.

Nathan Schwermann
  • 30,884
  • 15
  • 79
  • 89
  • 1
    I would like to mention that decompilation is against the law in many countries for example in whole European Union so please be carefull :) – Paweł Byszewski Dec 05 '14 at 08:50