Bagaimana Anda bisa mencetak string dengan subskrip atau superskrip? Bisakah Anda melakukan ini tanpa perpustakaan eksternal? Saya ingin ini ditampilkan TextView
di Android.
Bagaimana Anda bisa mencetak string dengan subskrip atau superskrip? Bisakah Anda melakukan ini tanpa perpustakaan eksternal? Saya ingin ini ditampilkan TextView
di Android.
Jawaban:
((TextView)findViewById(R.id.text)).setText(Html.fromHtml("X<sup>2</sup>"));
atau
Contoh:
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);
equation.setText(blah+cs);
tidak berhasil. Bekerja dengan baik secara terpisah. Bagaimana cara mendapatkan pekerjaan itu?
Kepada semua orang yang bertanya, jika ingin dikecilkan selain dibuat super atau subskrip, tinggal tambahkan tag juga. EX:
"X <sup><small> 2 </small></sup>"
Di dalam kode masukkan saja ini "\ u00B2" Seperti ini:
textView.setText("X\u00B2");
Jika Anda ingin mengatur superskrip dari file string.xml coba ini:
sumber daya string:
<string name="test_string">X<sup>3</sup></string>
jika Anda ingin superskrip berukuran lebih kecil:
<string name="test_string">X<sup><small>3</small></sup></string>
Kode:
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>"));
(atau) Dari File Sumber Daya String:
<string name="test_string">
<![CDATA[ X<sup><small>2</small></sup> ]]>
</string>
Jawaban yang Diterima sudah tidak digunakan lagi sekarang. Jadi silakan baca kode ini. Saya mendapatkan ini dari beberapa situs web. Saya lupa namanya tapi terima kasih untuk bagian kode kerja yang bagus ini.
SpannableString styledString
= new SpannableString("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(new RelativeSizeSpan(2f), 0, 5, 0);
// make text bold
styledString.setSpan(new StyleSpan(Typeface.BOLD), 7, 11, 0);
// underline text
styledString.setSpan(new UnderlineSpan(), 13, 23, 0);
// make text italic
styledString.setSpan(new StyleSpan(Typeface.ITALIC), 25, 31, 0);
styledString.setSpan(new StrikethroughSpan(), 33, 46, 0);
// change text color
styledString.setSpan(new ForegroundColorSpan(Color.GREEN), 48, 55, 0);
// highlight text
styledString.setSpan(new BackgroundColorSpan(Color.CYAN), 57, 68, 0);
// superscript
styledString.setSpan(new SuperscriptSpan(), 72, 83, 0);
// make the superscript text smaller
styledString.setSpan(new RelativeSizeSpan(0.5f), 72, 83, 0);
// subscript
styledString.setSpan(new SubscriptSpan(), 87, 96, 0);
// make the subscript text smaller
styledString.setSpan(new RelativeSizeSpan(0.5f), 87, 96, 0);
// url
styledString.setSpan(new URLSpan("http://www.google.com"), 98, 101, 0);
// clickable text
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void 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);
Catatan: Selalu letakkan android:textAllCaps="false"
teks spasi Anda.
HTML.fromHTML (String) sudah tidak digunakan lagi pada API 24. Mereka mengatakan untuk menggunakan yang ini, yang mendukung flag sebagai parameter. Jadi untuk keluar dari jawaban yang diterima:
TextView textView = ((TextView)findViewById(R.id.text));
textView.setText(Html.fromHtml("X<sup>2</sup>", Html.FROM_HTML_MODE_LEGACY));
Dan jika Anda menginginkan kode yang mempertimbangkan API pra-24 juga:
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>"));
}
Jawaban ini berasal dari: https://stackoverflow.com/a/37905107/4998704
Bendera dan dokumentasi lainnya dapat ditemukan di sini: https://developer.android.com/reference/android/text/Html.html
Untuk "a" salin dan tempel ini "ᵃ"
Anda dapat menyalin dan menempelkan Superskrip dan Langganan ini langsung ke Sumber Daya String Android Anda.
Contoh:
<string name="word_with_superscript" translatable="false">Trademark ᵀᴹ</string>
Hasil: Merek Dagang ᵀᴹ
Huruf superskrip dan subskrip
Modal Superscript ᴬ ᴮ ᴰ ᴱ ᴳ ᴴ ᴵ ᴶⱽ ᵂ
Sangat kecil superskrip ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ ⁱ ʲ ᵏ ˡ ᵐ ⁿ ᵒ ᵖ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᶻ
Subscript sangat kecil ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ
Mereka disebut karakter Unicode, dan Android TextView
mendukungnya. Salin super / sub-skrip yang Anda inginkan dari Wiki ini: https://en.wikipedia.org/wiki/List_of_Unicode_characters#Superscripts_and_Subscripts
yourTextView.setText(Html.fromHtml("X<sup>2</sup>"));
This will be the result in you yourTextView =
X 2