从EditText中删除Spanable图像

时间:2011-05-10 15:05:23

标签: android-edittext

我正在开发一个信使类型的应用程序,我需要在聊天期间在编辑文本中添加表情符号。为了添加表情符号,我需要添加真正的笑脸图像而不是笑脸字符串。要实现这一点,我试图动态添加西班牙语图像一个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。有时当我尝试添加更多文本/笑脸时,它还会再次显示我已经删除的旧表情符号,添加更多文本/笑脸。 等待评论。 。

1 个答案:

答案 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);