我的长文字包含看起来像“某事物”的名字。这个长文本显示在TextView中。问题是“某事 - 事情”被打破了。
我找到了unicode角色U + 2011 NON-BREAKING HYPHEN。但是从Android 3.0开始,它看起来像字体支持这个unicode字符。但是我支持Android 2.1,而是显示替换字符。
我看过类Spannable,但我没有找到如何定义不间断的文本块。也许我忽视了一些事情。
答案 0 :(得分:2)
我通过实现ReplacementSpan
在单个块中呈现文本来解决了文本块的破坏问题。这是代码:
public class NonbreakingSpan extends ReplacementSpan {
@Override
public void draw(
Canvas canvas,
CharSequence text, int start, int end,
float x, int top, int y, int bottom,
Paint paint) {
canvas.drawText(text, start, end, x, y, paint);
}
@Override
public int getSize(
Paint paint,
CharSequence text, int start, int end,
FontMetricsInt fm) {
return Math.round(paint.measureText(text, start, end));
}
}