Como você pode imprimir uma string com um subscrito ou sobrescrito? Você pode fazer isso sem uma biblioteca externa? Quero que isso seja exibido em um TextViewAndroid.
Tecnicamente, não é compatível com HTML, isto é, criando um Spanned, que TextViews oferece suporte. Essencialmente CharSequences com informações de estilo.
Dandre Allison de
1
Isso não funciona para mim ... mas talvez seja porque eu configurei dentro do meu arquivo strings.xml. Ele é subscrito para mim, mas ele o prende e não importa quanto preenchimento eu coloquei, ele sempre será cortado.
JPM de
Analisar este html não é incrivelmente caro?
A. Steenbergen
11
O link na resposta não parece mais relevante.
Pang
3
Obrigado por isso, mas a resposta abaixo usando um SpannableStringBuilder é muito melhor.
Isso realmente parece certo, obrigado por compartilhar! O método Html.fromHTML () é conveniente, mas o sobrescrito não é menor.
Daniel Schuler de
Assim é bem melhor! O método Html.fromHtml pode fazer com que o texto sobrescrito seja cortado.
Zach Sperske de
Quando eu uso este método gosto de dizer que 100 metros quadrados equation.setText(blah+cs);ele não funciona. Funciona bem separadamente. Como conseguir esse trabalho?
Ninguém
Muito melhor do que o método Html.fromHtml ()
científico
Por favor, adicione a explicação
Aryeetey Solomon Aryeetey
48
Para todas as pessoas perguntando, se você quiser torná-lo menor além de fazer super ou subscrito, você só precisa adicionar a tag também. EX:
Olá, sua resposta foi muito útil. No entanto, qual código pode ser usado para subscrito? Além disso, como esses códigos são chamados se eu o procuro no Google, eles são unicodes?
eu sou novo para empilhar o fluxo, naquela época não sei como usar.
mvnkalyani
8
A resposta aceita está obsoleta agora. Então, por favor, leia este trecho de código. Peguei isso em algum site. Esqueci o nome, mas de qualquer forma, obrigado por este bom código de trabalho.
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);
Nota: Sempre coloque android:textAllCaps="false"de seu spantext.
O HTML.fromHTML (String) tornou-se obsoleto a partir da API 24. Eles dizem para usar este, que oferece suporte a sinalizadores como parâmetro. Então, para sair da resposta aceita:
Respostas:
ou
Tarefas comuns e como fazê-las no Android
fonte
Exemplo:
fonte
equation.setText(blah+cs);
ele não funciona. Funciona bem separadamente. Como conseguir esse trabalho?Para todas as pessoas perguntando, se você quiser torná-lo menor além de fazer super ou subscrito, você só precisa adicionar a tag também. EX:
fonte
No código basta colocar este "\ u00B2" Assim:
textView.setText("X\u00B2");
fonte
Se você deseja definir o sobrescrito do arquivo string.xml, tente o seguinte:
recurso de string:
se você quiser que o sobrescrito seja menor:
Código:
fonte
É um pouco tarde, mas seguindo apenas funciona bem, use sobrescrito como caractere especial, usei spacial char aqui.
fonte
(ou) Do arquivo de recurso de string:
fonte
A resposta aceita está obsoleta agora. Então, por favor, leia este trecho de código. Peguei isso em algum site. Esqueci o nome, mas de qualquer forma, obrigado por este bom código de trabalho.
Nota: Sempre coloque
android:textAllCaps="false"
de seu spantext.fonte
O HTML.fromHTML (String) tornou-se obsoleto a partir da API 24. Eles dizem para usar este, que oferece suporte a sinalizadores como parâmetro. Então, para sair da resposta aceita:
E se você quiser um código que considere APIs anteriores aos 24 anos também:
Esta resposta foi derivada de: https://stackoverflow.com/a/37905107/4998704
Os sinalizadores e outras documentações podem ser encontrados aqui: https://developer.android.com/reference/android/text/Html.html
fonte
Encontrei este artigo sobre como usar um
Spannable
ou em um arquivo de recurso de string:<sup>
ou<sub>
para sobrescrito e subscrito, respectivamente.fonte
Android String Resource Superscript e Subscript para letras
Você realmente não precisa usar o documento html se alguma das letras que deseja estiver representada aqui
Para "a", copie e cole este "ᵃ"
Você pode copiar e colar qualquer um desses Superscripts e Subscripts diretamente no seu Android String Resource.
Exemplo:
Resultado: Marca Registrada ᵀᴹ
Letras sobrescritas e subscritas
Sobrescrito maiúsculo ᴬ ᴮ ᴰ ᴱ ᴳ ᴴ ᴵ ᴶ ᴷ ᴸ ᴹ ᴺ ᴼ ᴾ ᴾ ᴿ ᵀ ᵁ ⱽ ᵂ
Sobrescrito minúsculo ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ ⁱ ʲ ᵏ ˡ ᵐ ⁿ ᵒ ᵖ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᶻ
Subscrito minúsculo ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ ₛ ₜ ᵤ ᵥ ₓ
fonte
Nos
strings.xml
arquivos, você pode apenas usar a<sup>3</sup>
tag HTML . Funciona perfeitamente para mimEXEMPLO
fonte
Eles são chamados de caracteres Unicode, e o Android os
TextView
suporta. Copie o super / sub-script que você deseja deste Wiki: https://en.wikipedia.org/wiki/List_of_Unicode_characters#Superscripts_and_Subscriptsfonte
X 2
fonte