Unterschiedliche Schriftgröße von Strings in derselben TextView

Lesezeit: 4 Minuten

Unterschiedliche Schriftgrose von Strings in derselben
Adriana Carelli

Ich habe ein textView innen mit einer Zahl (variabel) und a stringwie kann ich die Nummer eine Nummer größer als die geben string? der Code:

TextView size = (TextView)convertView.findViewById(R.id.privarea_list_size);
if (ls.numProducts != null) {
    size.setText(ls.numProducts + " " + mContext.getString(R.string.products));
}

Ich möchte, dass ls.numproducts eine andere Größe als der Rest des Textes hat. Wie macht man?

1644227046 924 Unterschiedliche Schriftgrose von Strings in derselben
Raghunandan

Benutze einen Spannable String

 String s= "Hello Everyone";
 SpannableString ss1=  new SpannableString(s);
 ss1.setSpan(new RelativeSizeSpan(2f), 0,5, 0); // set size
 ss1.setSpan(new ForegroundColorSpan(Color.RED), 0, 5, 0);// set color
 TextView tv= (TextView) findViewById(R.id.textview);
 tv.setText(ss1); 

Schnappschuss

Geben Sie hier die Bildbeschreibung ein

Sie können die Zeichenfolge mit Leerzeichen teilen und der gewünschten Zeichenfolge eine Spanne hinzufügen.

 String s= "Hello Everyone";  
 String[] each = s.split(" ");

Jetzt bewerben span zum string und füge dasselbe hinzu textview.

  • setSpan() return: java.lang.IndexOutOfBoundsException: setSpan (0 … 5) endet jenseits der Länge 1. Was bedeutet das?

    – Adriana Carelli

    2. Mai ’13 um 11:10 Uhr

  • Überprüfen Sie die Länge der Zeichenfolge. IndexOutOfBoundsException: Zeigt eine falsche Indexposition für Start und Ende der Spanne an. In der obigen Hallo-Länge ist 5, also habe ich die Spanne von Index 0 bis 5 angewendet

    – Raghunandan

    2. Mai 13 um 11:12 Uhr


  • Hat auf Google Glass perfekt funktioniert!

    – Mohammed Arman

    5. November 15 um 7:22 Uhr

  • Gibt es eine Möglichkeit, die kleinen Zeichen in vertikaler Richtung in die Mitte zu verschieben? Grundsätzlich sollten alle Zeichen unabhängig von der Größe vertikal zentriert sein.

    – 500865

    23. September 16 um 22:16 Uhr

  • In diesem Fall benötigen Sie wahrscheinlich zwei Textansichten, oder Sie müssen Ihre eigene Textansicht erstellen

    – Raghunandan

    24. September 16 um 5:17 Uhr

1644227047 219 Unterschiedliche Schriftgrose von Strings in derselben
Joao Sousa

Nur für den Fall, dass Sie sich fragen, wie Sie mehrere verschiedene Größen in derselben Textansicht festlegen können, aber eine absolute Größe und keine relative Größe verwenden, können Sie dies mit erreichen AbsoluteSizeSpan anstelle einer RelativeSizeSpan.

Holen Sie sich einfach die Dimension in Pixel der gewünschten Textgröße

int textSize1 = getResources().getDimensionPixelSize(R.dimen.text_size_1);
int textSize2 = getResources().getDimensionPixelSize(R.dimen.text_size_2);

und dann eine neue erstellen AbsoluteSpan basierend auf dem Text

String text1 = "Hi";
String text2 = "there";

SpannableString span1 = new SpannableString(text1);
span1.setSpan(new AbsoluteSizeSpan(textSize1), 0, text1.length(), SPAN_INCLUSIVE_INCLUSIVE);

SpannableString span2 = new SpannableString(text2);
span2.setSpan(new AbsoluteSizeSpan(textSize2), 0, text2.length(), SPAN_INCLUSIVE_INCLUSIVE);

// let's put both spans together with a separator and all
CharSequence finalText = TextUtils.concat(span1, " ", span2);

  • Gute Ergänzung mit AbsoluteSizeSpan Beispiel

    – Eugeneek

    6. Juni 16 um 12:06 Uhr

  • @AmitGarg möchten Sie näher darauf eingehen?

    – Joao Sousa

    11. August 17 um 19:46 Uhr

  • Sie können auch verwenden AbsoluteSizeSpan(sizeInDip, true) um die Größe direkt in dp anzugeben

    – Ilia Grabko

    11. April 19 um 14:30 Uhr

1644227047 319 Unterschiedliche Schriftgrose von Strings in derselben
Remmyabhavan

Sie können dies tun, indem Sie eine HTML-Zeichenfolge verwenden und den HTML-Code auf Textview setzen
txtView.setText(Html.fromHtml("Your html string here"));

Beispielsweise :

txtView.setText(Html.fromHtml("<html><body><font size=5 color=red>Hello </font> World </body><html>"));`

  • Schöner Beitrag! Aber fromHtml ist von nun an (API >= N) veraltet. Damit dies funktioniert, tun Sie dies, um den Kompatibilitätsmodus zuzulassen: if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { txtView.setText(Html.fromHtml(“your html string”)), Html.FROM_HTML_MODE_LEGACY)); } Else {txtView.setText(Html.fromHtml(“Ihre HTML-Zeichenfolge”)); }

    – statosdotcom

    1. Juli 16 um 4:24 Uhr

  • Was ist die Einheit von “5” ? Ist es DP? Ist es sp? Wie kann ich es zu einem von denen ändern?

    – Android-Entwickler

    23. April 2020 um 11:28 Uhr


  • Farben und Familie funktionieren jedoch, Größe funktioniert nicht.

    – kann

    29. Juli 2020 um 4:12 Uhr


Methode 1

public static void increaseFontSizeForPath(Spannable spannable, String path, float increaseTime) {
    int startIndexOfPath = spannable.toString().indexOf(path);
    spannable.setSpan(new RelativeSizeSpan(increaseTime), startIndexOfPath,
            startIndexOfPath + path.length(), 0);
}

verwenden

Utils.increaseFontSizeForPath(spannable, "big", 3); // make "big" text bigger 3 time than normal text

Geben Sie hier die Bildbeschreibung ein

Methode 2

public static void setFontSizeForPath(Spannable spannable, String path, int fontSizeInPixel) {
    int startIndexOfPath = spannable.toString().indexOf(path);
    spannable.setSpan(new AbsoluteSizeSpan(fontSizeInPixel), startIndexOfPath,
            startIndexOfPath + path.length(), 0);
}

verwenden

Utils.setFontSizeForPath(spannable, "big", (int) textView.getTextSize() + 20); // make "big" text bigger 20px than normal text

Geben Sie hier die Bildbeschreibung ein

Unterschiedliche Schriftgrose von Strings in derselben
Anandharaj R

private SpannableStringBuilder SpannableStringBuilder(final String text, final char afterChar, final float reduceBy) {
        RelativeSizeSpan smallSizeText = new RelativeSizeSpan(reduceBy);
        SpannableStringBuilder ssBuilder = new SpannableStringBuilder(text);
        ssBuilder.setSpan(
                smallSizeText,
                text.indexOf(afterChar),
                text.length(),
                Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
        );

        return ssBuilder;
    }
------------------------
TextView textView =view.findViewById(R.id.textview);
String s= "123456.24";
textView.setText(SpannableStringBuilder(s, '.', 0.7f));

—————- Ergebnis —————

Ergebnis :

12345.24

1644227048 508 Unterschiedliche Schriftgrose von Strings in derselben
Garci

Der beste Weg, dies zu tun, ist HTML ohne Unterzeichenfolge Ihres Textes und vollständig dynamisch. Zum Beispiel:

  public static String getTextSize(String text,int size) {
         return "<span style="size:"+size+"" >"+text+"</span>";

    }

und Sie können Farbattribute usw. verwenden … wenn andererseits:

size.setText(Html.fromHtml(getTextSize(ls.numProducts,100) + " " + mContext.getString(R.string.products));  

1644227048 907 Unterschiedliche Schriftgrose von Strings in derselben
PgmFreek

Versuchen SpannableStringbuilder. Damit können wir Strings mit mehreren Schriftgrößen erstellen.

.

808610cookie-checkUnterschiedliche Schriftgröße von Strings in derselben TextView

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy