对齐是否在TextView中的HTML.fromHtml()中工作?
我试过
<div align="center"><p>Test</p></div>
以及它的一些变体,包括将没有括号的对齐标签放到段落标记中,但都没有效果。文本总是留下来。
感谢您的帮助!
此致。
答案 0 :(得分:16)
TextView中的HTML文本不支持对齐。
答案 1 :(得分:8)
要在textview中设置对齐,请先将textview width设置为match_parent,然后在HTML标记中使用text-align选项。像这样的东西:
embedded_swf['player_load']({
'vast': vast, // parsed VAST
'callback': 'window.player.events.backchannel' // some available method to send success/error messages to
});
[...]
embedded_swf['player_exec']({
'command': {
'command': 'play',
'target': 'ad.id.1' // some identifier flash-player can work with
},
'callback': 'window.player.events.backchannel'
});
更新: 这个解决方案适用于android 7及以上版本:|
答案 2 :(得分:2)
虽然可以使用webview而不是TextView来使用对齐,并从放置在资源中的文件加载html:
public class ViewWeb extends Activity {
WebView webview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webview = (WebView) findViewById(R.id.webView1);
webview.loadUrl("file:///android_asset/index.html");
}
}
答案 3 :(得分:2)
您无法在HTML文本中设置对齐方式,但可以使用SpannableStringBuilder代替。它很冗长,但它完成了工作。
E.g。
private Spanned getFormattedLabelText(String text, String subText) {
String fullText = String.format("%s\n%s", text, subText);
int fullTextLength = fullText.length();
int titleEnd = text.length();
SpannableStringBuilder s = new SpannableStringBuilder(fullText);
// Center align the text
AlignmentSpan alignmentSpan = new AlignmentSpan.Standard(Layout.Alignment.ALIGN_CENTER);
s.setSpan(alignmentSpan, 0, fullTextLength, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
// Make the title bold
s.setSpan(new StyleSpan(Typeface.BOLD), 0, titleEnd, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //bold
// Make the subtext small
int smallTextSize = DisplayUtil.getPixels(TypedValue.COMPLEX_UNIT_SP, 10);
s.setSpan(new AbsoluteSizeSpan(smallTextSize), titleEnd + 1, fullTextLength, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //bold
return s;
}
然后照常设置TextView文本:
myTextView.setText(getFormattedLabelText("Title", "Subtitle"));
答案 4 :(得分:2)
对于API 24及更低版本,将gravity
属性添加到TextView
布局元素
android:gravity="center_horizontal"
对于API 24及更高版本,可以在HTML中使用style
。
String centeredHtml = "<div style=\"text-align: center\">" + myFormattedHtml + "</div>";
textView.setText(Html.fromHtml(centeredHtml));
但至少API 26也支持gravity
。
答案 5 :(得分:0)
我相信更容易使用TextView中的Gravity属性作为文本的中心...
答案 6 :(得分:0)
If someone wants to align text in center with color red then one may use code below.
String centerNRed = "<div style='text-align:center' ><span style='color:red' >Hello World Its me.....</span></div>";
txt1.setText(Html.fromHtml(centerNRed));