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

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

Войти
Регистрация
Восстановить пароль
 
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
#1

Touch – обработка касания - Программирование Android

02.02.2016, 15:38. Просмотров 564. Ответов 5
Метки нет (Все метки)

Задача - чтобы после прикосновения уменьшался шрифт до тех пор пока не будет поднят палец.
Если ли другие варианты, кроме как написать второй поток и из него в бесконечном цикле все это делать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2016, 15:38     Touch – обработка касания
Посмотрите здесь:

Обработка касания touch - Программирование Android
Всем привет, я пытаюсь оброботать на картинке нажатие на найденный предмет по координатом через метод onTouch(View v, MotionEvent...

Обработка касания(провести пальцем) - Программирование Android
Нужно реализовать следующее: например, веду пальцем по линии, и при достижении конца линии находится кнопка, как только палец достигает...

Проверка касания экрана в любом месте - Программирование Android
Здравствуйте! Вопрос такой, как можно реализовать проверку условия касания экрана? Т.е., например, если есть касание экрана (в любом...

Как создать обработчик касания в игре? - Программирование Android
Ниже приведён код игры PingPong, вверху ракетка противника(ИИ), а внизу ракетка управляемая игроком, к которой надо прикрутить слушатель...

Слушатель для события касания по тексту - Программирование Android
Подскажите пожалуйста как создать обработчик события касания по разному тексту? Допустим есть StringBuilder str str заполнен с помощью...

listview и touch - Программирование Android
Доброго дня. Нужно дополнить нажатия на listview - то есть при длинном нажатии на элемент списка еще должно просматриваться в какую...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
02.02.2016, 15:52     Touch – обработка касания #2
Valakin, в смысле, какой второй поток? Вы же в интерфейсе всё делаете. Поэтому это UI-поток. Там и меняете. Тормозить будет в любом случае. И почему это цикл бесконечный? Если вы делаете для TextView, то достаточно доли секунды, чтобы шрифт уменьшился до нуля.
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
02.02.2016, 16:20  [ТС]     Touch – обработка касания #3
Цитата Сообщение от CoolMind Посмотреть сообщение
Там и меняете
менять надо не один раз, а постепенно, пока пользователь не уберет палец,
как бы вы реализовали?
вопрос больше не к размеру шрифта (можно например переменную уменьшать на процент),
а к работе кода
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
02.02.2016, 16:43     Touch – обработка касания #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Valakin, нужно определить область, нажатие на которой вызывает событие. Дальше переопределить метод onTouch, например, как в http://startandroid.ru/ru/uroki/vse-...botka-kasanija. Я использовал для этой цели ImageView. В функции вам потребуется обрабатывать такие действия: MotionEvent.ACTION_DOWN, MotionEvent.ACTION_UP и MotionEvent.ACTION_CANCEL. Соответственно, при нажатии пальца возникает ACTION_DOWN, при отпускании - ACTION_UP. В блоке ACTION_DOWN вам нужно, например, брать текущее время и сравнивать с тем, когда последний раз меняли шрифт. В ACTION_UP таймер можно опять занулять. Дальше вычисляете, сколько прошло времени с момента последнего изменения. Например, прошло 100 мс, можно уменьшить шрифт на 0.2. Меняете у всех нужных компонентов шрифт, меняете время последнего изменения. Если хотите, могу попробовать код написать.
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
02.02.2016, 16:52  [ТС]     Touch – обработка касания #5
спасибо, но я явно плохо объясняю,
работать должно только от одного прикосновения, то есть ACTION_DOWN будет всего один раз
и пока палец не поднят постепенно уменьшается переменная которая задает размер
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2016, 17:05     Touch – обработка касания
Еще ссылки по теме:

Canvas, SurfaceView, Touch - Программирование Android
Всем добра. Возник один баг (может в коде проблема), который неприятно выглядит в приложении. Рисуя с помощью SurfaceView, Canvas...

Поставить View поверх другой и отключить touch - Программирование Android
Здравствуйте. Хочу реализовать следующее. Есть список на каждом итеме есть кнопки. Нажимаю на кнопку и поверх списка появляется View с...

jquery touch - tap,touch,live - jQuery
Здравствуйте, задача написать простой web калькулятор который будет кроссбраузерным и будет работать на любом браузере. Метод click...

Игра: Без касания
Прохождение: Код: 10 Чит: WINNING Видео-прохождение: k8BWf1CEW68

Как сделать 2 касания? - Unity, Unity3D
Есть игра. Суть кто больше нажмет, но работает только 1 касание. Как сделать хотя бы 2? public int F = 0; public string a; ...

Найти абсциссу точки касания. - Математический анализ
к графику функции f(x)=ln(3x) в точке с абсциссой x=1/3 проведена касательная.Найдите абсциссу точки касательной,ордината которой равна...


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

Или воспользуйтесь поиском по форуму:
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
02.02.2016, 17:05     Touch – обработка касания #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
боже, та шо там писать тот второй поток, создаем где-то в активити что-то типа
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
    private final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
 
    private final View.OnTouchListener listener = new View.OnTouchListener() {
        private ScheduledFuture<?> future;
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    future = service.scheduleAtFixedRate(task, 0, 200, TimeUnit.MILLISECONDS);
                    break;
                case MotionEvent.ACTION_UP:
                    future.cancel(true);
                    break;
            }
            return true;
        }
    };
 
    private final Runnable task = new Runnable() {
        private final Handler handler = new Handler(Looper.getMainLooper());
 
        @Override
        public void run() {
            handler.post(new Runnable() {
                @Override
                public void run() {
                    textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textView.getTextSize() - 1);
                }
            });
        }
    };
и вешаем OnTouchListener на нужное нам textView
PROFIT
Yandex
Объявления
02.02.2016, 17:05     Touch – обработка касания
Ответ Создать тему
Опции темы

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