Android: ускорение отображения текста в формате html - PullRequest
1 голос
/ 06 января 2011

Мое приложение использует StringBuilder для сборки абзацев текста, которые затем отображаются в TextView в ScrollView.

Файл макета 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 абзацев общим объемом около 50 КБ текста требуется более 5 секунд, чтобы выполнить эти три строки кода.

Кто-нибудь может подсказать, как я могу ускорить это, пожалуйста?

1 Ответ

4 голосов
/ 06 января 2011

Кто-нибудь может подсказать, как я могу ускорить это, пожалуйста?

Используйте WebView вместо ScrollView и TextView.

Также, как указал Ник, подтвердите, что время, которое вы тратите, действительно тратится там, где вы думаете, с помощью Traceview или чего-то еще.

...