I want to insert a image to a editText my code is:
CharSequence charSeq= editText.getText()+" ";
SpannableString ss2 = new SpannableString(charSeq);
Drawable d2 = holder.image.getDrawable();
d2.setBounds(0, 0, d2.getIntrinsicWidth(), d2.getIntrinsicHeight());
ImageSpan span2 = new ImageSpan(d2, ImageSpan.ALIGN_BASELINE);
ss2.setSpan(span2,charSeq.length()-1, charSeq.length(),
Spannable.SPAN_INCLUSIVE_INCLUSIVE);
editText.setText(ss2,BufferType.SPANNABLE);
My code can run but i have some not bad experience i want to modify:
1: You know when use ss2.setSpan() method, the image can replace the character, i only want to insert new image, donot want to the image replace the character.
2: you know my method include "editText.getText()+" ";", i add some Extra space, so that the image can insert to the last of the CharSequence. how to not need add add some Extra, the image also insert to the last of the CharSequence.
3.when i insert the image to the last of the CharSequence, the cursor not at the last, it appear in the front of the CharSequence. how to put the cursor at the behind the image.
4.i want to constantly insert the image in the different of the CharSequence,how to do?
My question so many, I want you can help me thank you very very much.
Try this, i hope you are in search of this:
The same thing you can try for:
With this,you would get the image left align and also would get cursor after the image.Try using:
Use:
in res/layout/mylayout.xml:
in res/values/strings.xml:
where ok16.png and retry16.png are in the res/drawable/ folder
Do something like this (note: you can reuse SpannableStringBuilder)
Note: See follow up answer for dealing with partial deletion of tags
I guess, You'll also need some functionality for text-editing: image should be removed if one character of it is removed; this class can help (removes all the image text-placeholder if a char of it is removed)
I am an inserting and deleting an image in EditText by this way:
Customer button Insertion:
Custom button Deletion:
Drawable can be pass by multiple ways for testing I am doing like this: