Как добавить изображение значка в качестве подсказки в EditBox в Android

#android

#Android

Вопрос:

Мне нужно поместить поисковую линзу изображения в качестве подсказки в EditText. возможно ли это сделать в Android?

с наилучшими пожеланиями,,

Ответ №1:

Я всегда решал эту проблему, изменяя рисуемое право.

Вы можете сделать это в XML-файле макета Android:drawableRight=»@drawable /search_icon» или программно, используя функцию setCompoundDrawablesWithIntrinsicBounds.

Надеюсь, это помогло! 🙂

Комментарии:

1. Большое спасибо.. это пробуждается волшебным образом!! … только одна проблема, значок отображается справа от окна редактирования, а не слева … итак, как сделать так, чтобы он отображался с левой стороны?

2. вместо этого просто используйте android: drawableLeft 🙂 вы можете использовать left, right, top и bottom

Ответ №2:

установите фон со значком поиска на EditText и очистите его при событии щелчка, используя textWatcher , clickListener или touchListener .

Ответ №3:

У меня есть именно то решение, о котором вы просили. Это отлично работает, но имейте в виду, что поддержка Unicode на Android глючит.

1) Выберите понравившийся символ из Unicode здесь http://www.fileformat.info/info/unicode/char/1f50e/index.htm затем выберите шрифт, который его поддерживает (и имеет визуальное представление, соответствующее вашему дизайну).

2) Загрузите этот шрифт (следите за лицензией и размером файла ttf)

3) Поместите загруженный шрифт в папку assets, например Symbola.ttf

4) Сделайте это в своем методе on create

     Typeface font = Typeface.createFromAsset(getAssets(), "Symbola.ttf");
    txtSearch.setHint("uD83DuDD0E");
    txtSearch.setTypeface(font);
//Unfortunatly you can't define "uD83DuDD0E" in strings xml, that is not supported.
  

5) Если вам не нравятся символы в шрифте, установите txtSearch.setTypeface (Шрифт.ПО УМОЛЧАНИЮ); когда пользователь начинает печатать (используйте средство просмотра текста onTextChanged (…))

Комментарии:

1. РЕДАКТИРОВАТЬ: Я только что повторно протестировал это, и теперь это кажется намного проще, но я не могу гарантировать, что это будет работать на каждом телефоне или версии ОС. Вы можете просто установить txtSearch.setHint(» uD83D uDD0E»); в onCreate и иметь символ увеличительного стекла