Android:在xml中格式化大量文本

时间:2013-04-13 20:12:59

标签: android html xml text

我正在尝试格式化用户要查看的大量文本。我有一个布局xml文件,由一个文本框组成,在其中显示大量的格式化文本。一切都很好(粗体,分页符,换行符,超链接等)但由于某种原因,文本不会重新调整大小。捏缩放不能像我怀疑的那样工作,但即使用户进入设置>可访问性>并选择大文本文本大小不会增加。我的代码如下。

strings.xml中的格式化文本

<string name="blessings_in_general">        
    <![CDATA[

        <p><b>General Instructions</b></p>

        <p>...</p>

        <p>...</p>

        <p>...</p>

        <b>1.</b> It should be performed in the name of Jesus Christ. <br />
        <b>2.</b> It should be performed by the authority of the priesthood. <br />
        <b>3.</b> It should be performed with any necessary procedures, such as using specified words or using 
        consecrated oil.<br />
        <b>4.</b> It should be authorized by the presiding authority who holds the proper keys (normally the 
        bishop or stake president), if necessary according to the instructions in this chapter.

        <p>...</p>

        <p><a href="http://www.lds.org/scriptures/dc-testament/dc/20.79?lang=eng#79">D&amp;C 20:79</a> and 
        <a href="http://www.lds.org/scriptures/bofm/moro/5.1-2?lang=eng">Moroni 5</a>.</p>

    ]]>
</string>

BlessingsInGeneral.java:

public class BlessingsInGeneral extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.blessings);

    int blessing = R.string.blessings_in_general;

    TextView foo = (TextView) findViewById(R.id.tvBlessings);
    foo.setMovementMethod (LinkMovementMethod.getInstance());
    foo.setText(Html.fromHtml(getString(blessing)));


}

}

我怀疑问题出在这行代码foo.setText(Html.fromHtml(getString(blessing)));中,因为文本被视为HTML对象而不是文本对象。我的应用程序其他部分的所有纯文本都可以毫无问题地向上和向下扩展。我从用户那里得到的头号投诉是他们无法增加文字的字体大小。我看了我的主要竞争对手(LDS Info),它也有很多这种特殊的格式,而且似乎也没有这种能力。这只是用户需要处理的Android限制吗?换句话说:对大量文本使用特殊格式或使用简单文本对象而不进行格式化,允许用户更改字体大小。

我听说过可以使用html布局视图,这应该允许捏缩放,但我的用户发现这个界面比较丑陋(鲜明的白色背景打破了应用程序的流程)。

请帮忙。

0 个答案:

没有答案