Moh*_*nde 96 java string android superscript subscript
如何打印带有下标或上标的字符串?没有外部库,你能做到吗?我希望这能TextView在Android中显示.
Kon*_*rov 149
((TextView)findViewById(R.id.text)).setText(Html.fromHtml("X<sup>2</sup>"));
Run Code Online (Sandbox Code Playgroud)
要么
小智 100
例:
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);
Run Code Online (Sandbox Code Playgroud)
Ari*_*oli 45
对于所有人来说,除了制作超级或下标之外,如果你想让它更小,你只需要添加标签.EX:
"X <sup><small> 2 </small></sup>"
Run Code Online (Sandbox Code Playgroud)
小智 11
如果要从string.xml文件设置上标,请尝试以下操作:
字符串资源:
<string name="test_string">X<sup>3</sup></string>
Run Code Online (Sandbox Code Playgroud)
如果你想让上标更小:
<string name="test_string">X<sup><small>3</small></sup></string>
Run Code Online (Sandbox Code Playgroud)
码:
textView.setText(Html.fromHtml("Anything you want to put here"+getString(R.string.test_string)));
Run Code Online (Sandbox Code Playgroud)
CoD*_*oDe 11
它有点晚了,但只是工作正常,使用上标作为特殊字符,我在这里使用了空间字符.
<string name="str">H?</string>
Run Code Online (Sandbox Code Playgroud)
m.v*_*ani 10
((TextView)findViewById(R.id.text)).setText(Html.fromHtml("X<sup><small>2</small></sup>"));
Run Code Online (Sandbox Code Playgroud)
(或)从字符串资源文件:
<string name="test_string">
<![CDATA[ X<sup><small>2</small></sup> ]]>
</string>
Run Code Online (Sandbox Code Playgroud)
已接受的答案现已弃用.所以请仔细阅读这段代码.我是从某个网站得到的.我忘记了这个名字,但无论如何,感谢这段好的工作代码.
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);
Run Code Online (Sandbox Code Playgroud)
注意:始终放置android:textAllCaps="false"spantext.
小智 6
对于“a”,复制并粘贴此“\xe1\xb5\x83”
\n您可以将任何上标和下标直接复制并粘贴到 Android 字符串资源中。
\n例子:
\n <string name="word_with_superscript" translatable="false">Trademark \xe1\xb5\x80\xe1\xb4\xb9</string>\nRun Code Online (Sandbox Code Playgroud)\n结果:商标\xe1\xb5\x80\xe1\xb4\xb9
\n上标和下标字母
\n上标大写 \xe1\xb4\xac \xe1\xb4\xae \xe1\xb4\xb0 \xe1\xb4\xb1 \xe1\xb4\xb3 \xe1\xb4\xb4 \xe1\xb4\xb5 \xe1\xb4\xb6 \xe1\xb4\xb7 \xe1\xb4\xb8 \xe1\xb4\xb9 \xe1\xb4\xba \xe1\xb4\xbc \xe1\xb4\xbe \xe1\xb4\xbf \xe1\xb5\x80 \xe1 \xb5\x81 \xe2\xb1\xbd \xe1\xb5\x82
\n小写上标\xe1\xb5\x83 \xe1\xb5\x87 \xe1\xb6\x9c \xe1\xb5\x88 \xe1\xb5\x89 \xe1\xb6\xa0 \xe1\xb5\x8d \xca\xb0 \xe2 \x81\xb1 \xca\xb2 \xe1\xb5\x8f \xcb\xa1 \xe1\xb5\x90 \xe2\x81\xbf \xe1\xb5\x92 \xe1\xb5\x96 \xca\xb3 \xcb\xa2 \xe1\xb5\x97 \xe1\xb5\x98 \xe1\xb5\x9b \xca\xb7 \xcb\xa3 \xca\xb8 \xe1\xb6\xbb
\n小写下标 \xe2\x82\x90 \xe2\x82\x91 \xe2\x82\x95 \xe1\xb5\xa2 \xe2\xb1\xbc \xe2\x82\x96 \xe2\x82\x97 \xe2\x82\x98 \xe2\x82\x99 \xe2\x82\x92 \xe2\x82\x9a \xe1\xb5\xa3 \xe2\x82\x9b \xe2\x82\x9c \xe1\xb5\xa4 \xe1\xb5\xa5 \xe2 \x82\x93
\nHTML.fromHTML(String) 从 API 24 开始已被弃用。他们说改用这个,它支持标志作为参数。因此,要放弃已接受的答案:
TextView textView = ((TextView)findViewById(R.id.text));
textView.setText(Html.fromHtml("X<sup>2</sup>", Html.FROM_HTML_MODE_LEGACY));
Run Code Online (Sandbox Code Playgroud)
如果您想要也考虑 24 之前的 API 的代码:
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>"));
}
Run Code Online (Sandbox Code Playgroud)
这个答案来自: /sf/answers/2653357521/
标志和其他文档可以在这里找到: https://developer.android.com/reference/android/text/Html.html
| 归档时间: |
|
| 查看次数: |
73041 次 |
| 最近记录: |