Android spannablecontent mit abgerundeten Ecken

8

Ich versuche, meine Saite zu ändern, um ein Abzeichen mit einer Nummer in der Mitte zu machen, indem ich eine spannbare Schnur benutze. Ich kann den entsprechenden Buchstaben / die richtige Zahl markieren, indem ich BackGroundColorSpan einstelle, aber ich brauche Hilfe, damit es etwas hübscher wird. Ich hatte gehofft, abgerundete Ecken mit ein wenig Polsterung um die gesamte Form zu haben.

Dieser Artikel ist wirklich nah an dem, was ich versuche zu tun: Android SpannableString Hintergrund hinter einem Teil des Textes festlegen

Ich muss die Ressource wirklich als TextView speichern, da sie mit meiner Anwendung interagiert.

Irgendwelche Ideen, wie man ReplacementSpan für meine spezielle Situation einsetzt?

Hier ist mein Codeausschnitt:

%Vor%     
ericlokness 11.07.2014, 15:52
quelle

6 Antworten

9

Nachdem ich ein wenig Hilfe mit einem Konverter für C # gelesen hatte, kam ich auf diese Idee. Ich habe noch etwas zu tun, aber wenn jemand eine ähnliche Antwort sucht.

%Vor%     
ericlokness 12.07.2014, 13:29
quelle
13

Tatsächlich fand ich große Probleme mit all diesen Antworten, wenn mehrere Zeilen von Badges angezeigt wurden. Nach vielen Tests und Optimierungen. Ich habe schließlich die beste Version des oben genannten.

Die Grundidee besteht darin, den TextView zu tricksen, indem Sie eine viel größere Textgröße festlegen und die gewünschte Größe innerhalb des Bereichs festlegen. Außerdem können Sie sehen, dass ich den Hintergrund und den Text des Logos anders zeichne.

Also, das ist mein RoundedBackgroundSpan:

%Vor%

Und hier ist, wie ich es benutze:

%Vor%


Hinweis:

  • Sie können mit allen Größen und Konstanten spielen, um zu Ihrem gewünschten Stil zu passen
  • Wenn Sie eine externe Schriftart verwenden, stellen Sie sicher, dass Sie android: includeFontPadding="false" setzen, da sonst die Höhe der Zeile durcheinander gebracht werden kann

Genießen Sie:)

    
Shirane85 05.01.2016 23:53
quelle
9

Hier ist eine verbesserte Version basierend auf der Antwort von @ericlokness mit benutzerdefinierten Hintergrund- und Textfarben. Es funktioniert auch mit mehreren Spannen auf demselben TextView.

%Vor%     
mvandillen 12.03.2015 09:38
quelle
4

Ich habe die mvandillen-Klasse weiter verbessert.

Das scheint sehr gut zu funktionieren:

%Vor%     
Daniele B 04.04.2015 02:20
quelle
1

Ok, also die Frage ist ein bisschen chaotisch, hier ist meine Lösung von DanieleB und mvandillen.

%Vor%

Tipp: Sie können die textColor und die standardmäßige TextView-Farbe entfernen:

%Vor%     
Hugo Gresse 21.06.2016 16:08
quelle
1

Hier ist meine Version basierend auf @mvandillen Antwort. Ich brauchte auch einen gewissen Spielraum am Anfang der Spanne.

%Vor%

Verwendung:

%Vor%

Vorschau:

    
vovahost 28.07.2017 14:40
quelle

Tags und Links