Android: TextView.setSpan с растровым изображением в приложении чата

Я пытаюсь обновить один TextView с растровым изображением, а затем буду иметь возможность добавлять текст непосредственно после.

String str = tvChat.getText()+message+"\n"+" ";
int length = str.length();
ImageSpan span = new ImageSpan(getActivity(), bm, ImageSpan.ALIGN_BASELINE);
SpannableStringBuilder ssb = new SpannableStringBuilder(str); 
ssb.setSpan(span, length-2, length, Spannable.SPAN_INCLUSIVE_INCLUSIVE );
tvChat.setText(ssb);
ssb.clear();
ssb.clearSpans();

Это работает впервые. Однако, когда я делаю это из другой части моего кода:

tvChat.append("Some random text");

Изображения передаются в TextView. Я хотел бы добавить обычный текст после изображения.

1 ответ

Чтобы текст добавлялся сразу после изображения, вы должны использовать Spannable.SPAN_EXCLUSIVE_EXCLUSIVE вместо Spannable.SPAN_INCLUSIVE_INCLUSIVE.

ssb.setSpan(span, length-2, length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

licensed under cc by-sa 3.0 with attribution.