我的问题非常类似于here所描述的问题。但它只在Android 4.2设备上测试时出现。在使用Android 2.2的较旧的测试设备上,一切都很好。
我的问题
我在TextView中间添加了一个ImageSpan,它将替换TextView的一个字符。在Android 4.2 将显示ImageSpan 之后的文本。在Android 2.2中,一切都像预期的那样。
代码示例
CharSequence chars = txtView.getText();
SpannableStringBuilder stringBuilder = new SpannableStringBuilder(chars);
for (int i = 0; i < chars.length(); i++) {
int codePoint = Character.codePointAt(chars, i);
if (codePoint > 255) {
// loading the bitmap ...
ImageSpan img = new ImageSpan(context, bmp, ImageSpan.ALIGN_BASELINE);
stringBuilder.replace(i, i + 1, "");
stringBuilder.setSpan(img, i, i + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
}
txtView.setText(stringBuilder, BufferType.SPANNABLE);
截图
到目前为止我尝试了什么
我尝试了几乎所有Spanned - 常量,您可以在setSpan
添加,但4.2设备上没有任何效果。
答案 0 :(得分:3)
我很抱歉我发布了这个,因为我自己找到了答案。
我之前认为我曾尝试Spanned.SPAN_INCLUSIVE_EXCLUSIVE
,但我显然没有。无论如何...
stringBuilder.setSpan(img, i, i + 1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
适用于Android 4.2和Android 2.2。希望这个帖子将来会帮助其他人。