我正在开发一个信使类型的应用程序,我需要在聊天期间在编辑文本中添加表情符号。为了添加表情符号,我需要添加真正的笑脸图像而不是笑脸字符串。要实现这一点,我试图动态添加西班牙语图像一个EditText 这是我的代码
SpannableString ss = new SpannableString("abc");
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);
et.setText(ss);
我在链接上面的代码为How can i adding image on edittext dynamically?,
我正在编辑文本中添加图像,并将焦点设置在编辑文本末尾,用户的文本结束。根据需要添加精细。 现在,当我想删除表情符号/添加更多文本到编辑文本时,它给出了意外的输出。 有时它删除文本而不是smilies。有时当我尝试添加更多文本/笑脸时,它还会再次显示我已经删除的旧表情符号,添加更多文本/笑脸。 等待评论。 。
答案 0 :(得分:3)
Try this.
String strMessage = edtMsg.getText().toString();
ImageGetter imageGetter = new ImageGetter() {
public Drawable getDrawable(String source) {
Drawable d = getResources().getDrawable(
R.drawable.happy);
d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
return d;
}
};
Spanned cs = Html.fromHtml(strMessage+
"<img src='"
+ getResources()
.getDrawable(R.drawable.happy)
+ "'/>", imageGetter, null);
System.out.println("cs is:- " + cs);
edtMsg.setText(cs);