Android Html.fromHtml занимает слишком много времени - PullRequest
4 голосов
/ 01 июля 2010

Что мне делать, если tv.setText(Html.fromHtml(text)); занимает слишком много времени, и пользовательский интерфейс зависает?Если я могу сделать это с потоком, можете ли вы привести пример?

Ответы [ 2 ]

6 голосов
/ 01 июля 2010
private Handler mHandler = new Handler() {
     void handleMessage(Message msg) {
          switch(msg.what) {
               case UPDATE_TEXT_VIEW:
                    tv.setText(msg.obj); // set text with Message data
                    break;
          }
     }
}

Thread t = new Thread(new Runnable() {
     // use handler to send message to run on UI thread.
     mHandler.sendMessage(mHandler.obtainMessage(UPDATE_TEXT_VIEW, Html.fromHtml(text));
});
t.start();
3 голосов
/ 31 августа 2010

Если вам не нужно разбирать длинный или сложный HTML, ручное создание Spannable намного быстрее, чем использование Html.fromHtml().Следующий пример взят из Установить цвет диапазона TextView в Android

TextView TV = (TextView)findViewById(R.id.mytextview01);
Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers");
wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TV.setText(wordtoSpan);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...