Я хочу добавить значок "поиск", чтобы он отображался внутри EditTextслева? например, окно поиска в приложении Facebook для Android?
Ответы:
Используйте android:drawableLeftсвойство EditText.
<EditText
...
android:drawableLeft="@drawable/my_icon" />
drawablePaddingсвойства.
Вы можете установить 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);
nullпри щелчке по виду.
Если вы хотите использовать 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"/>
Использование:
<EditText
..
android:drawableStart="@drawable/icon" />
Используйте относительную компоновку и установите кнопку так, чтобы она была выровнена по левому краю окна редактирования текста, и установите левое заполнение вашего текстового представления на размер вашей кнопки. Я не могу придумать хороший способ сделать это без жесткого кодирования заполнения: /
Вы также можете использовать инструмент apk, чтобы разархивировать apk facebook и посмотреть его файлы макета.
использовать свойство android: drawbleStart в EditText
<EditText
...
android:drawableStart="@drawable/my_icon" />