2011-08-18 49 views
6

我有長文本包含名稱,看起來像「什麼東西」。這個長文本顯示在TextView中。問題是「某件事」出現了分歧。Android:我如何在TextView中創建不可破壞的塊?

我找到了unicode character U + 2011 NON-BREAKING HYPHEN。但從Android 3.0開始,它看起來像這個unicode字符支持字體。不過,我支持Android 2.1替代字符顯示。

我曾看過類Spannable,但我沒有找到如何定義nonbreaking塊的文本。也許我忽略了一些東西

回答

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)); 
    } 
} 
相關問題