java - Tiefstellen und Hochstellen einer Zeichenfolge in Android




string superscript (9)

Wie können Sie eine Zeichenfolge mit einem Index oder einem Hochzeichen drucken? Können Sie dies ohne eine externe Bibliothek tun? Ich möchte, dass dies in einem TextView in Android TextView .


Beispiel:

equation = (TextView) findViewById(R.id.textView1);
SpannableStringBuilder cs = new SpannableStringBuilder("X3 + X2");
cs.setSpan(new SuperscriptSpan(), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
cs.setSpan(new RelativeSizeSpan(0.75f), 1, 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
cs.setSpan(new SuperscriptSpan(), 6, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
cs.setSpan(new RelativeSizeSpan(0.75f), 6, 7, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
equation.setText(cs);

Die HTML.fromHTML (String) war ab API 24 veraltet. Sie sagen stattdessen, dass diese verwendet werden soll, die Flags als Parameter unterstützt. Um von der angenommenen Antwort abzuweichen:

TextView textView = ((TextView)findViewById(R.id.text));
textView.setText(Html.fromHtml("X<sup>2</sup>", Html.FROM_HTML_MODE_LEGACY));

Und wenn Sie Code möchten, der auch vor 24 APIs berücksichtigt:

TextView textView = ((TextView)findViewById(R.id.text));
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
  textView.setText(Html.fromHtml("X<sup>2</sup>", Html.FROM_HTML_MODE_LEGACY));
} else {
    textView.setText(Html.fromHtml("X<sup>2</sup>"));    
}

Diese Antwort wurde abgeleitet von: https://.com/a/37905107/4998704

Die Flaggen und andere Dokumentation finden Sie hier: https://developer.android.com/reference/android/text/Html.html


Es hat spät gebissen, aber nachdem ich nur gut gearbeitet habe, benutze hochgestellte Zeichen als Sonderzeichen, habe hier einen räumlichen Zeichensatz verwendet.

<string name="str">H₂</string>

Ich fand this Artikel über die Verwendung einer Spannable oder in einer String-Ressource-Datei: <sup> oder <sub> für hochgestellte bzw. tiefgestellte.


In den strings.xml Dateien können Sie einfach den HTML-Tag <sup>3</sup> . Arbeite perfekt für mich

BEISPIEL

<string name="turnoverRate">Turnover rate m<sup>3</sup>/m<sup>2</sup>/hour:</string>


Wenn Sie die hochgestellte Datei string.xml setzen möchten, versuchen Sie Folgendes:

Zeichenfolge-Ressource:

<string name="test_string">X&lt;sup&gt;3&lt;/sup&gt;</string>

Wenn Sie möchten, dass der hochgestellte Wert kleiner ist:

<string name="test_string">X&lt;sup&gt;&lt;small&gt;3&lt;/small&gt;&lt;/sup&gt;</string>

Code:

textView.setText(Html.fromHtml("Anything you want to put here"+getString(R.string.test_string)));

((TextView)findViewById(R.id.text)).setText(Html.fromHtml("X<sup><small>2</small></sup>")); 

(oder) Von String-Ressourcendatei:

<string name="test_string">
  <![CDATA[ X<sup><small>2</small></sup> ]]>
</string>

yourTextView.setText(Html.fromHtml("X<sup>2</sup>"));

This will be the result in you yourTextView =

X 2





subscript