2011-08-26 40 views
5

如何从edittext获取文本和笑脸字符串?如何从Edittext中将文本和笑脸变为字符串?

使用以下代码我在Edittext中添加笑脸/表情符号,但是如何从edittext将文本/笑脸变为字符串格式。

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; 
     } 
    }; 

    cs = Html.fromHtml(
      "<img src='" 
        + getResources() 
          .getDrawable(R.drawable.happy) 
        + "'/>", imageGetter, null); 
    edttxtemoji.setText(cs); 
+0

我做类似的东西在这里! http://stackoverflow.com/questions/16768930/implementations-of-emoji-emoticon-view-keyboard-layouts – toobsco42

回答

0

使用Html.toHtml(跨区文本)

,如:

String myString = Html.toHtml(cs); 
System.out.println(myString); 

编辑:在这里暗IAM挖,但它可能是你想要的文本(字符串)表示你的Smillie?

像你这样:

cs = Html.fromHtml(
      "<img src='" 
        + getResources() 
          .getDrawable(R.drawable.happy) 
        + "'/>", imageGetter, null); 

,你想:

字符串CS = “:)”

是吗?如果没有,我以前的答案给你的Html代码的技术字符串表示形式

+0

我已经尝试过,但这是行不通的。 –

+0

这不工作? – Michele

+0

这2行是给我下面的输出到字符串格式。

8

请使用以下函数。

public static Spannable getSmiledText(Context context, String text) { 
      SpannableStringBuilder builder = new SpannableStringBuilder(text); 
      int index;for (index = 0; index < builder.length(); index++) { 
      for (Entry<String, Integer> entry : emoticons.entrySet()) { 
       int length = entry.getKey().length(); 
       if (index + length > builder.length()) 
       continue; 
       if (builder.subSequence(index, index + length).toString().equals(entry.getKey())) { 
       builder.setSpan(new ImageSpan(context, entry.getValue()), index, index + length, 
        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
       index += length - 1; 
       break; 
       } 
      } 
      } 
      return builder; 
     } 

以下的情绪代码...

private static final HashMap<String, Integer> emoticons = new HashMap<String, Integer>(); 
     static { 
      emoticons.put("8-)", R.drawable.s1); 
      emoticons.put(":-&", R.drawable.s2); 
      emoticons.put(">:-)", R.drawable.s3).....}; 

和使用的setText

tv_msg_send.setText(getSmiledText(getApplicationContext(), edt_msg.getText().toString())); 
+0

此代码未获得表情符号如果我使用您的代码,文本“obj”是Return,所以这对我没有用处。 –

+0

@dipak ::但我在文本视图中获得了设置笑脸的完美文本。还有一件事我尝试使用你的代码几次在这篇文章之前,但我不能得到的解决方案。现在我不使用ImageGetter方法,而不是我使用“addTextChangedListener”和改变笑脸代码与图像通过直接调用上面的“getSmiledText”函数。所以请再试一次,它可能会帮助你 – amity

+0

我在我的项目中使用了你的代码,但这对我没有帮助。感谢帮助。 –

相关问题