157

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
  • 8,349
  • 12
  • 42
  • 67
Adham
  • 63,550
  • 98
  • 229
  • 344

6 Answers6

482

Use the android:drawableLeft property on the EditText.

<EditText
    ...     
    android:drawableLeft="@drawable/my_icon" />
marcosbeirigo
  • 11,098
  • 6
  • 39
  • 57
35

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
  • 56,972
  • 13
  • 121
  • 140
33

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,244
  • 1
  • 23
  • 29
8

Use :

<EditText
    ..     
    android:drawableStart="@drawable/icon" />
Maher Abuthraa
  • 17,493
  • 11
  • 81
  • 103
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
  • 31,285
  • 16
  • 80
  • 91
  • 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
0
` <EditText
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:background="@color/white"
        android:drawableStart="@android:drawable/ic_menu_search"
        android:hint=" Search" />`