2011-08-18 13 views
6

"Şey gibi şeyler" gibi görünen uzun metin içeren bir metin var. Bu uzun metin TextView'da gösterilmektedir. Sorun "bir şey-şey" hattının kırılmasıdır.Android: TextView'de nasıl kırılmaz blok yapıyorum?

Unicode karakteri U + 2011 NON-BREAKING HYPHEN buldum. Ancak Android 3.0'dan beri bu unicode karakter fontta destekleniyor gibi görünüyor. Ancak, yerine yerine yeni bir karakterin gösterildiği Android 2.1'i destekliyorum.

Spannable sınıfına baktım, ancak metnin bölünmeyen bloğunu nasıl tanımlayacağımı bulamadım. Belki bir şeyi gözden kaçırırım.

cevap

2

Metni tek bir blok halinde işlemek için ReplacementSpan uygulayarak metin bloğunu kırmayı çözdüm. İşte kod:

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)); 
    } 
}