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

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

Войти
Регистрация
Восстановить пароль
 
dimon4
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
#1

OnTouchListener и толстый дрожащий палец :) - Программирование Android

28.05.2016, 21:24. Просмотров 148. Ответов 3
Метки нет (Все метки)

суть проблемы... жму в экран, двигаю, отпускаю, получаю события ACTION_DOWN, ACTION_UP, ACTION_MOVE... при длительном нажатии желаю получить какое-то особое действие (пусть будет вывод диалога)...
на эмуляторе все красиво, мышкой делаю тыцк, не шевелюсь 3секунды, отпускаю кнопочку - диалог выводится.
на смартфоне добиться такого не смог ни разу (( что можно сделать в этом случае? палец подточить не вариант
и отработать событие необходимо именно в текущей точке код ничем не примечателен, все как у всех, ниже привел.

на крайний случай планирую временную переменную типа ОтклонениеПоХ если в итоге менее 2-3px, значит событие отработает...


Кликните здесь для просмотра всего текста
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
    public boolean onTouch(View v, MotionEvent event) {
 
        try {
            Thread.sleep(50);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
 
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                isDown = true;
                x = event.getX();
                y = event.getY();
                break;
            case MotionEvent.ACTION_UP:
                isUp = true;
                x = event.getX();
                y = event.getY();
                break;
            case MotionEvent.ACTION_MOVE:
                isMoved = true;
                Log.d(LOG_TAG,"движуха");
                x = event.getX();
                y = event.getY();
                break;
        }
        return true;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2016, 21:24     OnTouchListener и толстый дрожащий палец :)
Посмотрите здесь:
OnTouchListener Android
Android OnTouchListener
Не работает OnTouchListener Android
Android Создать OnTouchListener
Image OnTouchListener crash Android
Как правильно обработать onTouchListener Android
Android OnTouchListener не работает на низких версиях Android
Окружность радиус которого является getEvent палец Android
Android PLAY при касании экрана и STOP когда палец убран
jQuery Дрожащий текст
толстый. 8,2 (обычное) 1С 1C 8.x
C++ Qt Толстый и тонкий клиент

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dantes2104
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
28.05.2016, 21:43     OnTouchListener и толстый дрожащий палец :) #2
Возникает один вопрос. Как ты проверяешь что палец не сместился если ты переприсваеваешь значения при событии ACTION_UP тем же переменных, в которых ты записываешь координаты при событии ACTION_DOWN?
dimon4
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
29.05.2016, 07:07  [ТС]     OnTouchListener и толстый дрожащий палец :) #3
а тут все просто... сейчас при ACTION_DOWN фиксирую timeStart = System.currentTimeMillis(); при ACTION_UP:
Java
1
2
3
4
5
6
if (isUp) {
               if (!isMoved) {
                        timeEnd = System.currentTimeMillis();
                        if (timeEnd - timeStart > 2000) {
                            moveIntoBackground(mCapturedID);
                        }
что мне мешает Х, У запомнить и при isMoved получать МаксОтклонениеХ, МаксОтклонениеУ?

Добавлено через 9 часов 11 минут
будем считать что вопрос решен добавлением 4 лишних переменных для отлавливания перемещений между ACTION_DOWN и ACTION_UP.

может есть еще какие-то события в андроид? типа двойного клика, нажатия правой кнопки мыши, прокрутки мышьего колесика?
Pablito
2411 / 1856 / 581
Регистрация: 12.05.2014
Сообщений: 6,591
Завершенные тесты: 1
29.05.2016, 10:06     OnTouchListener и толстый дрожащий палец :) #4
к вопросу применения
Цитата Сообщение от dimon4 Посмотреть сообщение
timeEnd = System.currentTimeMillis()
Как определить, какой промежуток времени длилось нажатие?
был сдвиг или нет решается запоминанием начальных координат касания

для остальных извращений есть https://developer.android.com/traini.../detector.html
Yandex
Объявления
29.05.2016, 10:06     OnTouchListener и толстый дрожащий палец :)
Ответ Создать тему
Опции темы

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