Форум программистов, компьютерный форум CyberForum.ru

Быстродействие EditText при работе с html - Android

Войти
Регистрация
Восстановить пароль
 
Serbis
3 / 3 / 2
Регистрация: 13.07.2012
Сообщений: 121
18.11.2015, 17:52     Быстродействие EditText при работе с html #1
Есть EditText, в него загружается текст с html разметкой. Проблема в том, что он страшно тупит при попытке внести в него любые изменения. При добавление или удаление буквы на эмуляторе в режиме kvm в принципе нормально. А вот на слабеньком физическом Explay Atom телефон может задуматься чуть ли не на целую секунду. При этом при включении весьма не тривиального функционала (токенизация текста на лету) скорость работы не меняется вообще никак. Я не могу понять что может так тормозить, есть у кого идеи, может есть у EditText какая особая настройка для этого?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2015, 17:52     Быстродействие EditText при работе с html
Посмотрите здесь:

Как сохранить текст с EditText при переходе на другую Activity? Android
Android При нажатии на EditText показать клавиатуры с нужным языком
Сохранить измененные значения EditText в ListView при прокрутке Android
Android Почему в EditText не работает html тэг <strike>?
Удаление текста при активации пользователем EditText Android
Прокрутка ListView в начало при обновлении EditText Android
Android EditText смещается вниз при вводе текста, который занимает объём больше, чем EditText
EditText Замена символа при вводе Android
Не переводить фокус на следующий EditText при нажатии enter Android
Android Сохранение набранного в EditText текста при смене активити
Добавить символ в EditText при нажатии кнопки Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
резкий
1896 / 1630 / 508
Регистрация: 12.05.2014
Сообщений: 5,863
Завершенные тесты: 1
18.11.2015, 18:03     Быстродействие EditText при работе с html #2
а если так ?
Java
1
editText.setText(Html.fromHtml(text), TextView.BufferType.SPANNABLE);
Serbis
3 / 3 / 2
Регистрация: 13.07.2012
Сообщений: 121
18.11.2015, 19:39  [ТС]     Быстродействие EditText при работе с html #3
Паблито, Я по видимому чего-то не понимаю. Я сейчас переделал формирование текста напрямую через Spannable стили. Вот код:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
List<Spannable> list = new ArrayList<>();
        for (int i = 0; i < ta.size(); i++) {
            SpannableStringBuilder spannable = new SpannableStringBuilder();
            int offset = 0;
            for (int j = 0; j < ta.get(i).size(); j++) {
                Token tok = ta.get(i).get(j);
                spannable.append(tok.lexeme);
                spannable.setSpan(new ForegroundColorSpan(Color.parseColor("#" + tok.fontStyle.color)), offset, offset + tok.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                spannable.setSpan(new RelativeSizeSpan(tok.fontStyle.size), offset, offset + tok.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                spannable.setSpan(new TypefaceSpan(tok.fontStyle.font), offset, offset + tok.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                if (tok.fontStyle.bold)
                    spannable.setSpan(new StyleSpan(Typeface.BOLD), offset, offset + tok.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                if (tok.fontStyle.italic)
                    spannable.setSpan(new StyleSpan(Typeface.ITALIC), offset, offset + tok.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                if (tok.fontStyle.underline)
                    spannable.setSpan(new UnderlineSpan(), offset, offset + tok.length, Spanned.SPAN_INCLUSIVE_INCLUSIVE);
                offset += tok.length;
            }
            list.add(spannable);
        }
Устанавливает в EditText он вот таким образом

Java
1
setText(sp, BufferType.SPANNABLE);
Проблема в том, что этот код просто вешает телефон. При попытке ввести любой символ аппарат виснет а дальше окно завершения пивисшего потока. Вообще первый раз этой тема коснулся. Где у меня ошибка?
Паблито
18.11.2015, 19:46
  #4

Не по теме:

вот бы проверить это на одной готовой строке, ну так, что бы что-то скопировать себе в тестовый проект, создать там EditText и все, а то код выглядт угрожающе и х.з. что бы форматируется

Serbis
3 / 3 / 2
Регистрация: 13.07.2012
Сообщений: 121
19.11.2015, 11:06  [ТС]     Быстродействие EditText при работе с html #5
В общем разобрался я в проблеме, наверное, во всяком случае пока новых глюков не было. Проблема была во флаге Spanned.SPAN_INCLUSIVE_INCLUSIVE . Вообще не совсем до конца понял что он делает, но его замена на EXCLUSIVE_EXCLUSIVE вернула скорость в норму.
Yandex
Объявления
19.11.2015, 11:06     Быстродействие EditText при работе с html
Ответ Создать тему
Опции темы

Текущее время: 19:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru