Как создать подсказку EditText как текст с изображением в Android

Как создать подсказку/заполнитель EditText с текстом и изображением в android. я пишу так

<EditText  
    android:id="@+id/name" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"     
    android:lines="1"
     ................................
...............................

android:drwableLeft="@drawable/image1"
android:hint="enter name here"/>

Здесь мы видим изображение и текст (подсказку) в тексте редактирования, но изображение остается видимым даже после того, как пользователь что-то вводит в это поле. Мое требование: если в EditText нет текста, покажите подсказку с изображением, если EditText не пуст, скройте текст подсказки и изображение


person sandeepmaaram    schedule 27.11.2013    source источник
comment
как я могу поставить некоторый разрыв между подсказкой и левым отрисовкой   -  person Sagar Devanga    schedule 03.01.2015
comment
Вы можете использовать это свойство android:drawablePadding=10dp.   -  person sandeepmaaram    schedule 03.01.2015
comment
ImageSpan должен помочь.   -  person Felix.D    schedule 06.11.2015


Ответы (2)


Что вы можете сделать, так это установить drawableLeft, как вы сделали в своем xml, и добавить addTextChangedListener в свой EditText. При вводе этот слушатель будет предупрежден, и вы сможете проверить в слушателе, больше ли textsize, чем 0. Если это так, то просто установите drawableLeft, назначенный в xml программно, на null.

@Override
public void afterTextChanged(Editable s) {
    if(s.toString().length() > 0) {
        editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
    } else {
        //Assign your image again to the view, otherwise it will always be gone even if the text is 0 again.
        editText.setCompoundDrawablesWithIntrinsicBounds(R.drawable.image, 0, 0, 0);
    }
}
person Dion Segijn    schedule 27.11.2013

Я сделал это, поместив свой EditText внутри FrameLayout, а затем также включив TextView внутри FrameLayout. TextView служит текстом подсказки. У меня есть атрибут drawableStart в TextView. Когда пользователь начинает вводить текст, TextView скрывается с помощью кода, аналогичного тому, что содержится в принятом ответе Диона.

person dazed    schedule 25.07.2017