In Android wird ein String tiefgestellt und hochgestellt
104
Wie können Sie eine Zeichenfolge mit einem tiefgestellten oder hochgestellten Index drucken? Können Sie dies ohne eine externe Bibliothek tun? Ich möchte, dass dies in einem TextViewin Android angezeigt wird .
Es unterstützt technisch gesehen kein HTML, dh es erstellt ein Spanned, das von TextViews unterstützt wird. Im Wesentlichen CharSequences mit Stilinformationen.
Dandre Allison
1
Das funktioniert bei mir nicht ... aber vielleicht liegt es daran, dass ich es in meiner Datei strings.xml festgelegt habe. Es abonniert es für mich, aber es schneidet es ab und egal wie viel Polsterung ich stecke, es ist immer abgeschnitten.
JPM
Ist das Parsen dieses HTML nicht wahnsinnig teuer?
A. Steenbergen
10
Der Link in der Antwort scheint nicht mehr relevant zu sein.
Pang
3
Vielen Dank dafür, aber die Antwort unten mit einem SpannableStringBuilder ist viel besser.
Das sieht tatsächlich richtig aus, danke fürs Teilen! Die Methode Html.fromHTML () ist praktisch, aber der hochgestellte Index ist nicht kleiner.
Daniel Schuler
Das ist viel besser! Die Methode Html.fromHtml kann dazu führen, dass der hochgestellte Text abgeschnitten wird.
Zach Sperske
Wenn ich diese Methode verwende, möchte ich sagen, dass 100 Quadratmeter equation.setText(blah+cs);nicht funktionieren. Funktioniert aber separat gut. Wie bekomme ich diese Arbeit?
Niemand
Weitaus besser als die Html.fromHtml () -Methode
wissenschaftlich
Bitte Erklärung hinzufügen
Aryeetey Solomon Aryeetey
48
Für alle Leute, die fragen, ob Sie es kleiner machen möchten, als Super oder Index zu machen, müssen Sie nur ein Tag hinzufügen. EX:
Hallo, deine Antwort war sehr hilfreich. Welcher Code kann jedoch für den Index verwendet werden? Wie heißen diese Codes, wenn ich sie google? Sind sie Unicodes?
Ich bin neu, um über den Fluss zu stapeln, zu der Zeit weiß nicht, wie man verwendet.
mvnkalyani
8
Die akzeptierte Antwort ist jetzt veraltet. Bitte gehen Sie diesen Code durch. Ich habe das von einer Website bekommen. Ich habe den Namen vergessen, aber trotzdem danke für diesen guten Arbeitscode.
SpannableString styledString
=newSpannableString("Large\n\n"// index 0 - 5+"Bold\n\n"// index 7 - 11+"Underlined\n\n"// index 13 - 23+"Italic\n\n"// index 25 - 31+"Strikethrough\n\n"// index 33 - 46+"Colored\n\n"// index 48 - 55+"Highlighted\n\n"// index 57 - 68+"K Superscript\n\n"// "Superscript" index 72 - 83 +"K Subscript\n\n"// "Subscript" index 87 - 96+"Url\n\n"// index 98 - 101+"Clickable\n\n");// index 103 - 112// make the text twice as large
styledString.setSpan(newRelativeSizeSpan(2f),0,5,0);// make text bold
styledString.setSpan(newStyleSpan(Typeface.BOLD),7,11,0);// underline text
styledString.setSpan(newUnderlineSpan(),13,23,0);// make text italic
styledString.setSpan(newStyleSpan(Typeface.ITALIC),25,31,0);
styledString.setSpan(newStrikethroughSpan(),33,46,0);// change text color
styledString.setSpan(newForegroundColorSpan(Color.GREEN),48,55,0);// highlight text
styledString.setSpan(newBackgroundColorSpan(Color.CYAN),57,68,0);// superscript
styledString.setSpan(newSuperscriptSpan(),72,83,0);// make the superscript text smaller
styledString.setSpan(newRelativeSizeSpan(0.5f),72,83,0);// subscript
styledString.setSpan(newSubscriptSpan(),87,96,0);// make the subscript text smaller
styledString.setSpan(newRelativeSizeSpan(0.5f),87,96,0);// url
styledString.setSpan(newURLSpan("http://www.google.com"),98,101,0);// clickable textClickableSpan clickableSpan =newClickableSpan(){@Overridepublicvoid onClick(View widget){// We display a Toast. You could do anything you want here.Toast.makeText(MainActivity.this,"Clicked",Toast.LENGTH_SHORT).show();}};
styledString.setSpan(clickableSpan,103,112,0);// Give the styled string to a TextView
spantext =(TextView) findViewById(R.id.spantext);// this step is mandated for the url and clickable styles.
spantext.setMovementMethod(LinkMovementMethod.getInstance());// make it neat
spantext.setGravity(Gravity.CENTER);
spantext.setBackgroundColor(Color.WHITE);
spantext.setText(styledString);
Hinweis:android:textAllCaps="false" Geben Sie immer Ihren Spantext ein.
Die HTML.fromHTML (Zeichenfolge) war ab API 24 veraltet. Sie sagen, dass stattdessen diese verwendet werden soll, die Flags als Parameter unterstützt. Um von der akzeptierten Antwort abzuweichen:
Ich habe diesen Artikel über die Verwendung einer Spannableoder in einer String-Ressourcendatei gefunden: <sup>oder <sub>für hochgestellte bzw. tiefgestellte Zeichen.
Antworten:
oder
Allgemeine Aufgaben und deren Ausführung in Android
quelle
Beispiel:
quelle
equation.setText(blah+cs);
nicht funktionieren. Funktioniert aber separat gut. Wie bekomme ich diese Arbeit?Für alle Leute, die fragen, ob Sie es kleiner machen möchten, als Super oder Index zu machen, müssen Sie nur ein Tag hinzufügen. EX:
quelle
In den Code setzen Sie einfach dieses "\ u00B2" wie folgt:
textView.setText("X\u00B2");
quelle
Wenn Sie den hochgestellten Code aus der Datei string.xml festlegen möchten, versuchen Sie Folgendes:
Zeichenfolgenressource:
Wenn der hochgestellte Index kleiner sein soll:
Code:
quelle
Es ist etwas spät, aber nachdem es gut funktioniert hat, verwenden Sie hochgestellt als Sonderzeichen. Ich habe hier ein räumliches Zeichen verwendet.
quelle
(oder) Aus der String-Ressourcendatei:
quelle
Die akzeptierte Antwort ist jetzt veraltet. Bitte gehen Sie diesen Code durch. Ich habe das von einer Website bekommen. Ich habe den Namen vergessen, aber trotzdem danke für diesen guten Arbeitscode.
Hinweis:
android:textAllCaps="false"
Geben Sie immer Ihren Spantext ein.quelle
Die HTML.fromHTML (Zeichenfolge) war ab API 24 veraltet. Sie sagen, dass stattdessen diese verwendet werden soll, die Flags als Parameter unterstützt. Um von der akzeptierten Antwort abzuweichen:
Und wenn Sie Code wünschen, der auch APIs vor 24 berücksichtigt:
Diese Antwort wurde abgeleitet von: https://stackoverflow.com/a/37905107/4998704
Die Flags und andere Dokumentationen finden Sie hier: https://developer.android.com/reference/android/text/Html.html
quelle
Ich habe diesen Artikel über die Verwendung einer
Spannable
oder in einer String-Ressourcendatei gefunden:<sup>
oder<sub>
für hochgestellte bzw. tiefgestellte Zeichen.quelle
In den
strings.xml
Dateien können Sie einfach das HTML-<sup>3</sup>
Tag verwenden. Arbeite perfekt für michBEISPIEL
quelle
Sie werden als Unicode-Zeichen bezeichnet und werden von Android
TextView
unterstützt. Kopieren Sie das gewünschte Super- / Subskript aus diesem Wiki: https://en.wikipedia.org/wiki/List_of_Unicode_characters#Superscripts_and_Subscriptsquelle
Android String Resource Hochgestellt und Tiefgestellt für Buchstaben
Sie müssen kein HTML-Dokument verwenden, wenn einer der gewünschten Buchstaben hier dargestellt wird
Für "a" kopieren Sie dieses "ᵃ" und fügen Sie es ein.
Sie können diese hochgestellten und tiefgestellten Zeichen direkt in Ihre Android-String-Ressource kopieren und einfügen.
Beispiel:
Ergebnis: Marke ᵀᴹ
Hochgestellte und tiefgestellte Buchstaben
Hochgestellte Hauptstadt ᴬ ᴮ ᴰ ᴱ ᴳ ᴴ ᴵ ᴶⱽ ᵂ
Hochgestellte Minuskel ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ
Subscript Minuskel ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ
quelle
X 2
quelle