Как добавить значок в EditText в Android?

Я хочу добавить значок "поиск", чтобы появиться внутри EditText в левом краю? например, окно поиска в приложении Android для Android?

Ответ 1

Используйте свойство android:drawableLeft в EditText.

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

Ответ 2

Вы можете установить drawableLeft в XML, как предложено marcos, но вы также можете установить его программно - например, в ответ на событие. Для этого используйте метод 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);

Ответ 3

Если вы хотите использовать Android по умолчанию, вы можете использовать @android:drawable/ic_menu_search следующим образом:

<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"/>

Ответ 4

Используйте относительный макет и установите кнопку, которая будет выравниваться слева от текстового вида редактирования, и установите левое дополнение вашего текстового вида на размер вашей кнопки. Я не могу придумать хороший способ сделать это без жесткого кодирования отступов:/

Вы также можете использовать apk tool для сортировки разархивировать facebook apk и взглянуть на его файлы макета.

Ответ 5

Использование:

<EditText
    ..     
    android:drawableStart="@drawable/icon" />