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

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

Войти
Регистрация
Восстановить пароль
 
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Странные тормоза на реактор - Android

28.11.2013, 22:47. Просмотров 203. Ответов 0
Метки нет (Все метки)

Переписал "по правилам" и получил торможение.

Пишу свой обработчик мультитатча (гибче класики).
Сделал все через свой обработчик onTouch(
Сначала сделал статичный класс с обработчиком onTouch(
Сделал свою процедуру-реактор для отрисовки OnMultiTouch (кручу/зумю картинку)
Вызываю этот обработчик из onTouch( примерно так:
Java
1
2
3
public static int onTouch(View v, MotionEvent event) {
onMultiTouch(utils_MultiTouch.onTouch(v, event));
}
Результат utils_MultiTouch.onTouch пока только int
Все довольно шустро работает (рисует все 5 пальцев с истрией)

Подучил теорию... решил переписать на реакторах (грамотнее, больше возможностей, легче передавать сложные параметры)
Создал в классе MultiTouch
Java
1
2
3
4
5
6
7
8
9
10
    public interface onMultiTouch {
        public void onMultiTouch(int oper);
    }
    private static onMultiTouch out_onMultiTouch;
    public void setOnMultiTouch(onMultiTouch _onMultiTouch) {
        this.out_onMultiTouch = _onMultiTouch;
    }
    private static void _out(int event) {
        if (out_onMultiTouch != null ) out_onMultiTouch.onMultiTouch(event);
    }
и вызываю в мультитатч обработчике _out(123) когда нужно (со старым кодом реакции).

заменил в рабочем классе (там где рисую)
onMultiTouch(utils_MultiTouch.onTouch(v, event));
на
utils_MultiTouch.onTouch(v, event);
добавил
private utils_MultiTouch multiTouch = new utils_MultiTouch();
multiTouch.setOnMultiTouch(new utils_MultiTouch.onMultiTouch() {
@Override
public void onMultiTouch(int oper) {
onMultiTouch(oper);// старый обработчик
}
});


Обработчиков больше не стало(пока). Ничего не изменилось, но onMultiTouch вызывается раза в 2 дольше. Явное торможение при отрисовке пальцев (очень хорошо видно на тонких линиях)
Единственное подозрение на то что класс мультитатча статик.

Вопрос: У меня руки кривые или обработчик зря использовал - он изначально задумывался как более удобный, но тормознутый? Где накосячил? Прежде чем переписывать все с нуля (убирать статик - много менять), хотелось бы узнать Ваше мнение.
Еще знаю есть другая технология реакторов - добавление в шапку активити и @Override onMultiTouch. Это поможет?
В моей схеме реактор конечно НАМНОГО удобнее будет, но если дальше будет еще больше тормозов, прийдется отказаться от "накручивания" проекта вообще...

В идеале (планируется) вместо одного кода реактор должен давать список кодов вместо одного для обработки рисунком - тянем и провернули и зумировали и удерживаем уже 2 секунды; клик и дблклик с задержкой в 3 секунды.... А вместо таблицы кодов с кучей параметров проще вызывать несколько обработок с разными операциями на одно действие пользователя/пальца.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 22:47     Странные тормоза на реактор
Посмотрите здесь:

Apache Странные ссылки
Софт Тормоза с XP
Странные ошибки при компиляции проекта Android
C++ COM Word automation + Windows server 2008 R2 = тормоза(очень сильные тормоза)
Странные звуки
Android Создать свой "реактор"
Android Eclipse ndk странные ошибки
Debian Linux Странные процессы
Странные тормоза Toshiba Satellite l850d-c8s
C++ Странные ошибки в c++
Android Тормоза анимации
Плазменный реактор

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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