Je veux ajouter dynamiquement une image dans EditText
. C'est possible?
si quelqu'un le sait, donnez un exemple de code pour cela.
Si quelque chose comme ça:
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);
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>
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"
/>
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);
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);
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"
.
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
é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);
}
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);
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