Як додати піктограму всередині перегляду EditText в Android?


141

Я хочу додати піктограму "Пошук", яка з'явиться всередині EditTextлівого краю? наприклад, поле пошуку в додатку Facebook для Android?

Відповіді:


433

Використовуйте android:drawableLeftвластивість у редакторі редагування.

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

3
вибачте за незрозуміле запитання, я хочу додати кнопку, тому коли натискаю на неї, робимо певні дії
Adham

20
Це було якраз рішення, яке я очікував, враховуючи рубрику пошуку.
Томас Ейл

33
Крім того, відрегулюйте прокладку, використовуючи drawablePaddingвластивість.
Райан Р

тож яким має бути розмір цього малювального значка та в якій папці я повинен розміщувати його?
Калпеш Лахані

2
@KalpeshLakhani: Зазвичай в тексті редагування і малюнках має бути 32dp відповідно до інструкцій щодо дизайну Android: developer.android.com/design/style/metrics-grids.html
Лі Йі Гонг

30

Ви можете встановити dravableLeft в 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);

Це встановлює фон EditText, а не піктограму / зображення в "Лівому краї", що чітко зазначено в питанні.
Paresh Mayani

@Paresh - саме тому я видалив відповідь. Зараз я відредагував, щоб включити програмне рішення на додаток до оригінального рішення XML.
Peter Ajtai

1
як програмно приховати піктограму? при натисканні поля редагування?
Полювання

1
@Hunt - Просто встановіть купон, який можна звернути, nullколи клацніть подання.
Пітер Айтай

27

Якщо ви хочете використовувати програму 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"/>



-1

Використовуйте відносний макет і встановіть кнопку, щоб вирівняти ліворуч від подання тексту редагування, а ліву підкладку тексту перегляду встановіть за розміром вашої кнопки. Я не можу придумати гарний спосіб зробити це без жорсткого кодування прокладки: /

Ви також можете скористатися інструментом apk, щоб сортувати розпакувати facebook apk та переглянути його файли компонування.


1
Я хотів би зазначити, що декомпіляція суперечить закону у багатьох країнах, наприклад, у всьому Європейському Союзі, тому будьте обережні :)
Paweł Byszewski
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.