113 votes

Indice et exposant d'une chaîne de caractères dans Android

Comment imprimer une chaîne de caractères avec un indice ou un exposant ? Peut-on le faire sans une bibliothèque externe ? Je veux que cela s'affiche dans un TextView dans Android.

0 votes

Utiliser l'astuce [this][1] dans le listview et son textview. [1] : stackoverflow.com/a/22105902/1350021

162voto

Konstantin Burov Points 34011
((TextView)findViewById(R.id.text)).setText(Html.fromHtml("X<sup>2</sup>"));

ou

Tâches courantes et leur exécution dans Android

4 votes

Techniquement, il ne prend pas en charge le HTML, il crée un Spanned, ce que les TextViews prennent en charge. Il s'agit essentiellement de séquences de caractères avec des informations de style.

1 votes

Cela ne fonctionne pas pour moi... mais c'est peut-être parce que je l'ai défini dans mon fichier strings.xml. Pour moi, il est souscrit, mais il est coupé et peu importe la quantité de padding que je mets, il est toujours coupé.

0 votes

L'analyse de ce code html n'est-elle pas excessivement coûteuse ?

113voto

peter Points 281

Exemple :

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);

2 votes

Cela semble tout à fait correct, merci de nous en faire part ! La méthode Html.fromHTML() est pratique, mais l'exposant n'est pas plus petit.

0 votes

C'est bien mieux ! La méthode Html.fromHtml peut entraîner la coupure du texte en exposant.

0 votes

Lorsque j'utilise cette méthode, comme pour dire 100 mètres carrés par equation.setText(blah+cs); cela ne fonctionne pas. Par contre, il fonctionne très bien séparément. Comment faire pour que cela fonctionne ?

53voto

Ariel Capozzoli Points 189

Pour tous ceux qui se posent la question, si vous voulez réduire la taille d'un texte, vous n'avez qu'à ajouter une balise au lieu d'un indice ou d'un super indice. EX :

"X <sup><small> 2 </small></sup>"

12voto

César Cobo Points 51

Si vous souhaitez définir l'exposant à partir du fichier string.xml, essayez ceci :

chaîne de caractères :

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

si vous souhaitez que l'exposant soit plus petit :

<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)));

3voto

Mohit Deshpande Points 9472

J'ai trouvé este article sur l'utilisation d'un Spannable ou dans un fichier de ressources de type "string" : <sup> o pour l'exposant et l'indice, respectivement.

6 votes

Le lien dans la réponse ne semble plus pertinent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X