Comment imprimer une chaîne avec un indice ou un exposant? Pouvez-vous faire cela sans bibliothèque externe? Je veux que cela s'affiche dans un TextViewsous Android.
Il ne prend techniquement pas en charge HTML, c'est-à-dire crée un Spanned, que TextViews prend en charge. Essentiellement CharSequences avec des informations de style.
Dandre Allison
1
Cela ne fonctionne pas pour moi ... mais c'est peut-être parce que je l'ai placé dans mon fichier strings.xml. Il le souscrit pour moi mais il le clipse et peu importe combien de rembourrage je le mets, il est toujours coupé.
JPM
L'analyse de ce HTML n'est-elle pas incroyablement chère?
A. Steenbergen
11
Le lien en réponse ne semble plus pertinent.
Pang le
3
Merci pour cela, mais la réponse ci-dessous en utilisant un SpannableStringBuilder est bien meilleure.
Cela semble vraiment correct, merci pour le partage! La méthode Html.fromHTML () est pratique, mais l'exposant n'est pas plus petit.
Daniel Schuler
C'est bien mieux! La méthode Html.fromHtml peut entraîner la coupure du texte en exposant.
Zach Sperske
Quand j'utilise cette méthode, j'aime dire que 100 mètres carrés equation.setText(blah+cs);ne fonctionnent pas. Fonctionne bien séparément cependant. Comment faire ça?
Personne
Bien mieux que la méthode Html.fromHtml ()
scienticious
S'il vous plaît ajouter une explication
Aryeetey Solomon Aryeetey
48
À toutes les personnes qui le demandent, si vous voulez le réduire en plus de créer un super ou un indice, il vous suffit d'ajouter une balise. EX:
Salut, votre réponse a été très utile. Cependant, quel code peut être utilisé pour l'indice? Aussi comment s'appellent ces codes si je veux les rechercher sur Google, sont-ils des Unicodes?
Je suis nouveau pour empiler le flux, à ce moment-là, je ne sais pas comment l'utiliser.
mvnkalyani le
8
La réponse Acceptée est désormais obsolète. Alors s'il vous plaît, parcourez ce morceau de code. J'ai obtenu cela sur un site Web. J'ai oublié le nom mais de toute façon merci pour ce bon morceau de code fonctionnel.
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);
Remarque: mettez toujours android:textAllCaps="false"votre spantext.
Le HTML.fromHTML (String) était obsolète à partir de l'API 24. Ils disent d'utiliser celui-ci à la place, qui prend en charge les indicateurs comme paramètre. Donc, pour sortir de la réponse acceptée:
J'ai trouvé cet article sur la façon d'utiliser un Spannableou dans un fichier de ressources de chaîne: <sup>ou <sub>pour exposant et indice, respectivement.
Réponses:
ou
Tâches courantes et comment les faire sous Android
la source
Exemple:
la source
equation.setText(blah+cs);
ne fonctionnent pas. Fonctionne bien séparément cependant. Comment faire ça?À toutes les personnes qui le demandent, si vous voulez le réduire en plus de créer un super ou un indice, il vous suffit d'ajouter une balise. EX:
la source
Dans le code, mettez simplement ceci "\ u00B2" comme ceci:
textView.setText("X\u00B2");
la source
Si vous souhaitez définir l'exposant à partir du fichier string.xml, essayez ceci:
ressource de chaîne:
si vous voulez que l'exposant soit plus petit:
Code:
la source
C'est un peu tard mais la suite fonctionne très bien, utilisez l'exposant comme caractère spécial, j'ai utilisé le caractère spatial ici.
la source
(ou) À partir du fichier de ressources de chaîne:
la source
La réponse Acceptée est désormais obsolète. Alors s'il vous plaît, parcourez ce morceau de code. J'ai obtenu cela sur un site Web. J'ai oublié le nom mais de toute façon merci pour ce bon morceau de code fonctionnel.
Remarque: mettez toujours
android:textAllCaps="false"
votre spantext.la source
Le HTML.fromHTML (String) était obsolète à partir de l'API 24. Ils disent d'utiliser celui-ci à la place, qui prend en charge les indicateurs comme paramètre. Donc, pour sortir de la réponse acceptée:
Et si vous voulez un code qui prend également en compte les API antérieures à 24:
Cette réponse est dérivée de: https://stackoverflow.com/a/37905107/4998704
Les indicateurs et autres documentations peuvent être trouvés ici: https://developer.android.com/reference/android/text/Html.html
la source
J'ai trouvé cet article sur la façon d'utiliser un
Spannable
ou dans un fichier de ressources de chaîne:<sup>
ou<sub>
pour exposant et indice, respectivement.la source
Exposant et indice de ressource de chaîne Android pour les lettres
Vous n'avez pas vraiment besoin d'utiliser un document html si l'une des lettres que vous souhaitez est représentée ici
Pour "a" copiez et collez ce "ᵃ"
Vous pouvez copier et coller l'un de ces exposants et indices directement dans votre ressource de chaîne Android.
Exemple:
Résultat: marque déposée ᵀᴹ
Lettres en exposant et en indice
Majuscule en exposant ᴬ ᴮ ᴰ ᴱ ᴳ ᴴ ᴵ ᴶ ᴷ ᴸ ᴹ ᴺ ᴼ ᴾ ᴿ ᵀ ᵁ ⱽ ᵂ
Exposant minuscule ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ ⁱ ʲ ᵏ ˡ ᵐ ⁿ ᵒ ᵖ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᶻ
Indice minuscule ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ ₜ ᵤ ᵥ ₓ
la source
Dans les
strings.xml
fichiers, vous pouvez simplement utiliser la<sup>3</sup>
balise HTML . Travaille parfaitement pour moiEXEMPLE
la source
Ils sont appelés caractères Unicode et Android les
TextView
prend en charge. Copiez le super / sous-script que vous voulez depuis ce Wiki: https://en.wikipedia.org/wiki/List_of_Unicode_characters#Superscripts_and_Subscriptsla source
X 2
la source