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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Serbis
3 / 3 / 2
Регистрация: 13.07.2012
Сообщений: 123
#1

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

18.11.2015, 17:52. Просмотров 188. Ответов 4
Метки нет (Все метки)

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

Почему в EditText не работает html тэг <strike>? - Программирование Android
Добрый вечер, Почему не работает конструкция: Spanned s= Html.fromHtml(&quot;&lt;strike&gt;my test text&lt;/strike&gt;&quot;); ...

EditText Замена символа при вводе - Программирование Android
Всем привет! Помогите реализовать замену символа ' ' на '_' при вводе. Пытался сделать с помощью InputFilter InputFilter...

Прокрутка ListView в начало при обновлении EditText - Программирование Android
Всем привет! Проблема следующая - имеется ListView с адаптером. Элементы ListView - кастомные вьюшки с EditText. Если список очень большой,...

Удаление текста при активации пользователем EditText - Программирование Android
Доброго времени суток! у меня возник такой вопрос как сделать так чтобы при нажатии на EditText введенный текст по умолчанию сам удалялся и...

Добавить символ в EditText при нажатии кнопки - Программирование Android
Программа при нажатии на Button, должна выводить в EditText символ, например нажимаем на Button ooo, и в EditText появляется буква 'k', но...

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

EditText отключение выплывающей клавиатуры при загрузки приложения - Программирование Android
подскажите как сделать) заранее спасибо

Убрать softkeyboard и курсор при касании за пределами EditText? - Программирование Android
Всем добра! в EditText который находится в Toolbar задается курс валюты, после этого надо чтобы спряталась клавиатура и убрался фокус...

Сохранить измененные значения EditText в ListView при прокрутке - Программирование Android
Добрый день, прошу помощи, т.к. уже долго и безрезультатно пытаюсь решить следующую задачу: Есть Листвью с названиями товаров ,...

Сохранение набранного в EditText текста при смене активити - Программирование Android
Добрый день, подскажите как сделать чтобы при смене активити текст в EditText не пропадал.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2420 / 1865 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 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
Сообщений: 123
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);
Проблема в том, что этот код просто вешает телефон. При попытке ввести любой символ аппарат виснет а дальше окно завершения пивисшего потока. Вообще первый раз этой тема коснулся. Где у меня ошибка?
Pablito
18.11.2015, 19:46
  #4

Не по теме:

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

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

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