Ich habe mich bei Google umgesehen und bin auf diese Website gestoßen, auf der ich eine ähnliche Frage gefunden habe, wie man ein Bild in einen TextView
Text einfügt , zum Beispiel "Hallo, mein Name ist [Bild]" . Die Antwort lautete wie folgt :
ImageSpan is = new ImageSpan(context, resId);
text.setSpan(is, index, index + strLength, 0);
Ich würde gerne in diesem Code wissen,
- Was soll ich im Kontext tippen oder tun?
- Soll ich etwas tun, um etwas zu
text.setSpan()
importieren oder zu referenzieren oder es als Text zu belassen?
Wenn jemand dies für mich aufschlüsseln kann, wäre das sehr dankbar.
setCompoundDrawablePadding
macht nichtscom / xyz / customandroid / TextViewWithImages .java :
Verwenden:
in res / layout / mylayout.xml :
Beachten Sie, dass Sie den Paketnamen oben ändern müssen , wenn Sie TextViewWithImages.java an einem anderen Ort als com / xyz / customandroid / platzieren
com.xyz.customandroid
.in res / values / strings.xml :
Dabei sind ok16.png und retry16.png Symbole im Ordner res / drawable /
quelle
textView.setText(R.string.can_try_again);
, werden die Bilder nicht angezeigt, sondern nur der KlartextPress [img src=ok16/] to accept or [img src=retry16/] to retry
. Irgendeine Hilfe? Dies liegt daran, dass ich die Bilder dynamisch laden und in der Textansicht festlegen möchte.Ich habe viele verschiedene Lösungen ausprobiert und dies war für mich das Beste:
Dieser Code benötigt ein Minimum an Speicher.
quelle
Diese Antwort basiert auf dieser ausgezeichneten Antwort von 18446744073709551615 . Ihre Lösung ist zwar hilfreich, passt das Bildsymbol jedoch nicht an den umgebenden Text an. Außerdem wird die Symbolfarbe nicht auf die des umgebenden Textes eingestellt.
Die folgende Lösung verwendet ein weißes, quadratisches Symbol und passt es an die Größe und Farbe des umgebenden Textes an.
Wie benutzt man:
Betten Sie einfach Verweise auf die gewünschten Symbole in den Text ein. Es spielt keine Rolle, ob der Text programmgesteuert
textView.setText(R.string.string_resource);
oder in XML festgelegt wird.Fügen Sie die folgende Zeichenfolge in den Text ein, um ein zeichnbares Symbol mit dem Namen example.png einzubetten :
[img src=example/]
.Eine Zeichenfolgenressource könnte beispielsweise folgendermaßen aussehen:
quelle
Dies basiert teilweise auf dieser früheren Antwort von @A Boschman . In dieser Lösung stellte ich fest, dass die Eingabegröße des Bildes die Fähigkeit
makeImageSpan()
, das Bild richtig zentriert auszurichten, stark beeinflusste . Außerdem stellte ich fest, dass die Lösung den Textabstand beeinflusste, indem unnötige Zeilenabstände erzeugt wurden.Ich fand, dass BaseImageSpan (aus der Fresco-Bibliothek von Facebook) die Arbeit besonders gut macht:
Geben Sie dann Ihre betterImageSpan-Instanz
spannable.setSpan()
wie gewohnt anquelle