web-dev-qa-db-fra.com

Comment puis-je ajouter une image sur EditText

Je veux ajouter dynamiquement une image dans EditText. C'est possible? 

si quelqu'un le sait, donnez un exemple de code pour cela.

45
sivaraj

Si quelque chose comme ça:

EditCheck

est ce dont vous parlez, il vous suffit alors de définir la propriété Drawable{Right | Left | Top | Bottom} dans le fichier XML, ou d’appeler la commande Java correspondante.

EditText text = (EditText)findViewById(R.id.text);
text.setCompoundDrawables(null, null, getResources().getDrawable(R.drawable.check_box), null);
63
CaseyB

enter image description here

Il est très facile de surmonter ce problème en utilisant la disposition du cadre. Un autre avantage est que vous pouvez donner des événements de clic pour des boutons. et rechercher des icônes. 

<FrameLayout
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content" >

            <EditText
                Android:id="@+id/search"
                Android:layout_width="fill_parent"
                Android:layout_height="wrap_content"
                Android:background="@drawable/search_bar"
                Android:drawablePadding="8dp"
                Android:paddingLeft="30dp"
                Android:paddingRight="10dp"
                Android:inputType="text"
                Android:maxLines="1">

                <requestFocus />
            </EditText>

            <Button
                Android:id="@+id/searchBtn"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_gravity="left|center_vertical"
                Android:layout_margin="10dp"
                Android:background="@drawable/icon_magnify" />

            <Button
                Android:id="@+id/delete"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_gravity="right|center_vertical"
                Android:layout_margin="8dp"
                Android:background="@drawable/icon_remove" />
        </FrameLayout>
60
Ramesh Akula

en utilisant Android:drawableRight ou Android:drawableLeft (dépend où vous préférez aligner l'image)

<EditText 
        Android:layout_width="wrap_content"
        Android:layout_height="fill_parent"
        Android:id="@+id/searchedTxt"
        Android:width="200dp"
        Android:layout_alignParentRight="true"
        Android:drawableRight="@Android:drawable/ic_menu_search"
        Android:drawablePadding="@dimen/dimen_10dp"
        />  
43
Ging3r

vous pouvez aussi essayer ceci 

    SpannableString ss = new SpannableString("abc\n");
    Drawable d = img.getDrawable();
    d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
    ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
    ss.setSpan(span, 0, 3, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    editT.setText(ss);
26
Buda Gavril

Test Image

Vous pouvez utiliser setCompoundDrawablesWithIntrinsicBounds (int gauche, int haut, int droite, int bas) .

    EditText text = (EditText) findViewById(R.id.edtTest);
    text.setText("Test");
    text.setCompoundDrawablesWithIntrinsicBounds(null, null,
                       getResources().getDrawable(R.drawable.myDrawable, null), null);
16
Mihir Palkhiwala

Vous pouvez ajouter une image à votre EditText à Android:background="@drawable/img".

Si vous souhaitez modifier le style en utilisant neuf correctifs ou autre, mais si vous souhaitez ajouter une petite image à gauche de votre EditText, envisagez d'utiliser Android:drawableRight="@drawable/icon".

7
sami boussacsou

Vous pouvez utiliser: 

editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.pic_name, 0); 

comme suggéré ici:
L'appel de setCompoundDrawables () n'affiche pas le composé dessinée

1
Amitay Feder

étendre la classe edittext et faire le code que vous voulez qu'il soit

public void setImage(String imageResource) {
    int position = Selection.getSelectionStart(MyEditText.this
            .getText());

    Spanned e = Html.fromHtml("<img src=\"" + imageResource + "\">",
            imageGetter, null);

    MyEditText.this.getText().insert(position, e);
}
1
Hammad Hasan

Vous pouvez essayer ceci si vous êtes dans la classe adaptateur

    holder.myEditText.setCompoundDrawablesWithIntrinsicBounds(null, null,
            _context.getResources().getDrawable(R.drawable.ic_launcher),
            null);

et Vous pouvez essayer ceci si vous êtes en classe d'activité

    myEditText.setCompoundDrawablesWithIntrinsicBounds(null, null,
            getResources().getDrawable(R.drawable.ic_launcher),
            null);
0
Hammad Hasan

Créer une instance de la EditText

EditText editText = (EditText) findViewById(R.id.EditText1);

Ensuite, créez une instance dessinable de l'image

Drawable image = getResources().getDrawable(R.drawable.ic_warning); // API 21 and below.

OR

Drawable image = getDrawable(R.drawable.ic_warning); // API 22 and above.

Puis définissez l'image en appelant setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom);

editText.setCompoundDrawablesWithIntrinsicBounds(null, null, image, null); 

La ligne ci-dessus définira l'image dans le côté droit de la EditText

0
Ajay Sivan