Zeichne Text "ellipsized" auf eine Leinwand

7

Ich muss Text auf eine Arbeitsfläche (einer benutzerdefinierten Ansicht) zeichnen und muss diese zunächst auf eine maximale Breite zuschneiden und ggf. eine Ellipse am Ende hinzufügen. Ich sehe, Sie können es für eine TextView tun, aber ich möchte es in einer benutzerdefinierten Ansicht onDraw () tun, ohne eine untergeordnete Ansicht hinzuzufügen.

Ist das möglich? Ich weiß, dass ich die Saite messen, einen Charakter abschneiden, wieder messen kann, usw., bis es die richtige Größe hat ... und ich bin mir sicher, dass es auch effizientere Wege gibt ... aber ich möchte nicht neu erfinden das Rad, wenn ich kann.

    
rob 25.10.2010, 06:23
quelle

2 Antworten

16

Sehen Sie sich TextUtils.ellipsize() . Ich denke, es ist genau das, was du willst. Im Grunde sagen Sie einfach den verfügbaren Platz und verwenden die anderen Statusinformationen, um den richtigen Text für Sie zu erstellen. :)

    
Greg Giacovelli 25.10.2010, 06:56
quelle
10

Hier ist ein Beispiel:

%Vor%     
Asterius 02.06.2015 19:18
quelle

Tags und Links