Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
1

OnTouchListener и толстый дрожащий палец :)

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

Author24 — интернет-сервис помощи студентам
суть проблемы... жму в экран, двигаю, отпускаю, получаю события 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;
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2016, 21:24
Ответы с готовыми решениями:

Дрожащий текст
Здравствуйте всем! И на повестке дня такой вопрос. Мне очень интересно как реализовать дрожание...

OnTouchListener
Button start = (Button) findViewById(R.id.Start); start.setOnTouchListener(new...

OnTouchListener
Здравствуйте! Этот код работает как надо на Android 5.0+, но на 4.4 и ниже по какой-то причине не...

толстый. 8,2 (обычное)
Можно ли в Обработке Проведения документа изменить его реквизит? Он сохранит значение после записи,...

3
0 / 0 / 0
Регистрация: 13.01.2015
Сообщений: 61
28.05.2016, 21:43 2
Возникает один вопрос. Как ты проверяешь что палец не сместился если ты переприсваеваешь значения при событии ACTION_UP тем же переменных, в которых ты записываешь координаты при событии ACTION_DOWN?
0
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
29.05.2016, 07:07  [ТС] 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.

может есть еще какие-то события в андроид? типа двойного клика, нажатия правой кнопки мыши, прокрутки мышьего колесика?
0
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
29.05.2016, 10:06 4
к вопросу применения
Цитата Сообщение от dimon4 Посмотреть сообщение
timeEnd = System.currentTimeMillis()
Как определить, какой промежуток времени длилось нажатие?
был сдвиг или нет решается запоминанием начальных координат касания

для остальных извращений есть https://developer.android.com/... ector.html
0
29.05.2016, 10:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2016, 10:06
Помогаю со студенческими работами здесь

Не работает OnTouchListener
Button start = (Button) findViewById(R.id.Start); start.setOnTouchListener(new OnTouchListener()...

Создать OnTouchListener
bt11 = (Button)findViewById(R.id.bt11); bt11.setOnTouchListener(myListener); Нужно создать...

Image OnTouchListener crash
Делаю своё первое приложение под Android и столкнулся с следующей проблемой - программа вылетает...

Толстый Яндекс.Маркет
Здравствуйте. Хочу вплющить вертикальный блок Маркета в боковую часть сайта. Только там...

Толстый и тонкий клиент
Подскажите пожалуйста, какие отличия в реализации толстого и тонкого клиента? Использую в проекте...

От мыши болит указательный палец
Здравствуйте! Сама не программист, но очень много работаю за компьютером, конкретно заболел...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru