Android:加快(html 格式)文本的显示速度
我的应用程序使用 StringBuilder 来组装文本段落,然后将其显示在 ScrollView 内的 TextView 中。
displaytext.xml 布局文件是:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
xmlns:android="http://schemas.android.com/apk/res/android">
<ScrollView
android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/display_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
>
</TextView>
</ScrollView>
</LinearLayout>
显示 StringBuilder 对象 sbText 的代码是
setContentView(R.layout.displaytext);
TextView tv = (TextView)findViewById(R.id.display_text);
tv.setText(Html.fromHtml(sbText.toString()));
这工作正常,只是随着文本量的增长它变得非常慢。例如,要显示 50 个段落,总计约 50KB 的文本,仅执行这三行代码就需要 5 秒以上。
谁能建议我如何加快速度?
My app uses a StringBuilder to assemble paragraphs of text which are then displayed in a TextView within a ScrollView.
The displaytext.xml layout file is:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
xmlns:android="http://schemas.android.com/apk/res/android">
<ScrollView
android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/display_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
>
</TextView>
</ScrollView>
</LinearLayout>
and the code that displays the StringBuilder object sbText is
setContentView(R.layout.displaytext);
TextView tv = (TextView)findViewById(R.id.display_text);
tv.setText(Html.fromHtml(sbText.toString()));
This works OK, except that it gets very slow as the amount of text grows. For example, to display 50 paragraphs totalling about 50KB of text takes over 5 seconds just to execute those three lines of code.
Can anyone suggest how I can speed this up, please?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
WebView
而不是ScrollView
和TextView
。另外,正如 Nick 所指出的,通过使用 Traceview 或其他工具,确认您花费的时间确实花在您认为的地方。
Use a
WebView
instead of aScrollView
andTextView
.Also, as Nick indicated, confirm that the time you are spending really is being spent where you think it is, by using Traceview or something.