Пожалуйста, используйте следующую функцию.
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()));