如何从edittext获取文本和笑脸到String?
使用以下代码我在Edittext中添加了Smiley / Emojis但是如何从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 :(得分: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()));
答案 1 :(得分:0)
使用 Html.toHtml(跨文本)
像:
String myString = Html.toHtml(cs);
System.out.println(myString);
编辑:我在黑暗中挖掘,但是你想要你的Smillie的文字(字符串)表示吗?
像你一样:cs = Html.fromHtml(
"<img src='"
+ getResources()
.getDrawable(R.drawable.happy)
+ "'/>", imageGetter, null);
你想要:
String cs =“:)”;
是吗?如果没有,我之前的回答为您提供了Html代码的技术字符串表示