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

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

Войти
Регистрация
Восстановить пароль
 
sergei11
3 / 3 / 0
Регистрация: 29.10.2013
Сообщений: 33
#1

Помоегите разобраться с MultiTouch - Android

24.12.2014, 08:49. Просмотров 283. Ответов 0
Метки нет (Все метки)

Пример кода из этой книги http://shop.oreilly.com/product/0636920023005.do
Касаюсь двумя пальцами - всё ок, нарисовало 2 линии.
После этого касаюсь одним пальцем - java.lang.IllegalArgumentException: pointerIndex out of range
Код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public boolean onTouch(View v, MotionEvent event) {
        int action = event.getActionMasked();
        int idx;
        int n;
        switch (action) {
            case MotionEvent.ACTION_DOWN:
            case MotionEvent.ACTION_POINTER_DOWN:
                idx = MotionEventCompat.getActionIndex(event);
                tracks.add(event.getPointerId(idx));
                break;
            case MotionEvent.ACTION_POINTER_UP:
                idx = MotionEventCompat.getActionIndex(event);
                tracks.remove(event.getPointerId(idx));
                break;
            case MotionEvent.ACTION_MOVE:
                n = event.getHistorySize();
                for (Integer i : tracks) {
                    idx = event.findPointerIndex(i.intValue());
                    for (int j = 0; j < n; j++) {
                        addDot(
                                dots,
                                event.getHistoricalX(idx, j),
                                event.getHistoricalY(idx, j),
                                event.getHistoricalPressure(idx, j),
                                event.getHistoricalSize(idx, j)
                        );
                    }
                }
                break;
            default:
                return false;
        }
        for (Integer i: tracks){
            idx = event.findPointerIndex(i.intValue());
            addDot(
                    dots,
                    event.getX(idx),
                    event.getY(idx),
                    event.getPressure(idx),
                    event.getSize(idx)
            );
        }
        return true;
    }
Проект целиком: https://github.com/sergei-bespalov/M...e/master/Dots2
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2014, 08:49     Помоегите разобраться с MultiTouch
Посмотрите здесь:

Как разобраться с многопоточностью? Android
Не могу разобраться с потоками Android
Android Помоги разобраться с логами
Не могу разобраться с setImageDrawable Android
Помогите разобраться в екзепшене Android
Android Запись файла не могу разобраться
Android Нужно разобраться с зумом изображения
Не могу разобраться с созданием приложения Android
Хочу разобраться с ListView Android
Не могу разобраться в коде Android
Разобраться с Delete View Android
Android Не могу разобраться с вёрсткой

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

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

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