2

是否可以有一个包含两种大小文本的 TextView 对象?


我们可以使用单个 TextView 对象使用textViewObj.setText(Html.fromHtml());方法来更改文本内容的颜色。但是是否可以在单个 TextView 对象中包含两种大小的文本,如下所示

像这样

我得到的如下所示。我尝试了很多,但文本大小相同。

像这样

4

3 回答 3

3

您可以使用 Spannable:

Spannable span = new SpannableString("bigsmall");
span.setSpan(new RelativeSizeSpan(3f), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(span);

你可以做同样的颜色

span.setSpan(new ForegroundColorSpan(Color.GRAY), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
于 2012-04-07T10:52:36.070 回答
2

我已经检查过Editext。然后我知道Html.fromHtml()不支持<font>标签。我使用这个代码

EditText text = (EditText) findViewById(R.id.title);
 text.setText(Html
            .fromHtml("<html><h3>hello</h3><h1>hello</h1>"
                    + "<p><font size=\"5\">Font</font><font 
                                        size=\"10\">size</font>"
                    + "</p></html>"));

它显示不同大小的文本 hello 和 hello 但在两个不同的行中。但<font>标签值不会改变任何东西

在此处输入图像描述

于 2012-04-07T10:53:35.110 回答
0

据我所知,对于 TextView,您可以使用 setsize() 方法更改整个文本大小。无论如何,我会建议你另一种方法:在线性布局中使用两个 Textsize,一个接一个,在水平模式下。通过这种方式,您可以更改每个 TextView 的颜色/大小/等。

编辑:由于您使用的是 html 模式,另一种方法如下(可能会随着您的 html 样式而变化):

myTextView.setText(Html.fromHtml("<b>" + mNumbers + "</b>" +  "<small>" + mSpeed + "</small>" ));
于 2012-04-07T10:54:47.043 回答