2011-08-26 42 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

我在我的項目中使用了你的代碼,但這對我沒有幫助。感謝幫助。 –

相關問題