Android:加快(html 格式)文本的显示速度

发布于 2024-10-11 04:44:52 字数 1145 浏览 7 评论 0原文

我的应用程序使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千年*琉璃梦 2024-10-18 04:44:52

有人可以建议我如何加快速度吗?

使用 WebView 而不是 ScrollViewTextView

另外,正如 Nick 所指出的,通过使用 Traceview 或其他工具,确认您花费的时间确实花在您认为的地方。

Can anyone suggest how I can speed this up, please?

Use a WebView instead of a ScrollView and TextView.

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文