- Русские Блоги
- Android получает координаты позиции клика на экране
- Интеллектуальная рекомендация
- Используйте шаблон состояния вместо if else
- Проектирование архитектуры: схема проектирования уровня балансировки нагрузки (5) — установка одного узла LVS
- Рыба образования, средняя школа закончила в учебном класс, как найти первую работу.
- Синглтон паттерн в питоне
- Java Counce Collection
- Вам также может понравиться
- динамический прокси-сервер jdk (Proxy, InvocationHandler), включая исходный код $ Proxy0
- Юля: Об изменениях в Array 1.0
- студия Android генерирует статическую библиотеку jni
- Nginx 502 раствор
- Java вызывает SMS-интерфейс WebService
- Получить координаты клика android
- Русские Блоги
- Система координат окна и события касания экрана в Android
- 1. Система координат Android
- 2. Просмотр системы координат
- 3. Коснитесь event-MotionEvent.
Русские Блоги
Android получает координаты позиции клика на экране
В процессе разработки Android иногда необходимо получить координаты позиции касания для дальнейшей обработки, такой как создание крутых анимационных эффектов или реагирование на другие операции.
В этой статье кратко представлены начальная, текущая и конечная позиции сенсорного экрана во время работы с сенсорным экраном в Android.
расположение:
Операции в Activity:
Изображение эффекта:
Интеллектуальная рекомендация
Используйте шаблон состояния вместо if else
Большинство разработчиков все еще используютif elseСтруктура процесса, виделиjdonизbanqСтатья написана Большим Братом, используяcommand,aopЗамена шаблонаif elseСтруктура процесса. Я не совсем понял эт.
Проектирование архитектуры: схема проектирования уровня балансировки нагрузки (5) — установка одного узла LVS
1 Обзор Предыдущая статья «Проектирование архитектуры: проектирование уровня балансировки нагрузки (4) — Принципы LVS» (http://blog.csdn.net/yinwenjie/article/details/46845997), мы предста.
Рыба образования, средняя школа закончила в учебном класс, как найти первую работу.
Self-брат Я девять ноль, теперь занимается разработкой веб-конца Java. Некоторое понимание и восприятие учебных курсов. Учебное заведение является ямой, дорога, что вы уже прошли, только вы знаете, дл.
Синглтон паттерн в питоне
Дизайн шаблона Шаблон дизайна — это краткое изложение предыдущей работы, которое, как правило, широко распространено людьми и является зрелым решением конкретной проблемы. Он предназначен для многораз.
Java Counce Collection
TRUEEWAP основан на реализации красных навигаций. Это отображение отсортировано в соответствии с его природооформленным порядком или отсортировано в соответствии с компаратором, предусмотренным при со.
Вам также может понравиться
динамический прокси-сервер jdk (Proxy, InvocationHandler), включая исходный код $ Proxy0
1. Связанные классы и методы: java.lang.reflect.Proxy, Прокси предоставляет статические методы для создания динамических прокси-классов и экземпляров. newProxyInstance() Возвращает экземпляр прокси-кл.
Юля: Об изменениях в Array 1.0
Версии до 1.0, например 0.2-0.6, Но теперь 1.0 это сообщит об ошибке. Это использование претерпело серьезные изменения! такие как: Это можно считать серьезным изменением.
студия Android генерирует статическую библиотеку jni
Android Сяобай, который только что вошел в общество, описывает, как использовать студию Android для создания статической библиотеки jni. 1. Подготовка: Сначала установите ndk, сначала сами Baidu, позж.
Nginx 502 раствор
Общие решения Nginx 502 Bad Gateway следующие: Nginx 502 Ошибка 1: Количество сайтов велико, а количество PHP-CGI мало. Для этой 502 ошибки просто увеличивайте количество процессов PHP-CGI. В частност.
Java вызывает SMS-интерфейс WebService
1. Описание интерфейса WebService Отправьте в виде http-сообщения, выше — информация о запросе, а ниже — возвращаемое значение. Представлен раздел возвращаемого значения документа интерфейса. 2. Код J.
Источник
Получить координаты клика android
Объект класса MotionEvent используется для сообщения о событиях перемещения (мыши, пера, пальца, трекбола). Motion events (события перемещения) могут содержать либо абсолютные, либо относительные перемещения и другие данные, в зависимости от типа устройства.
[Обзор класса MotionEvent]
События перемещения описывают перемещения в виде кода действий (action code) и набора значений осей координат. Action code указывает изменение состояния, которое происходит, когда указатель опускается или поднимается. Значения координат осей описывают позицию и другие свойства перемещения.
Например, когда пользователь первый раз касается экрана, система передает событие касания (touch event) к соответствующему элементу визуального интерфейса View с кодом действия ACTION_DOWN (это и есть action code), с набором координат X и Y точки касания, и с информацией о давлении, размере и ориентации области касания.
Некоторые устройства могут сообщать о сразу нескольких путях перемещения, происходящих одновременно. Экраны с поддержкой мультитача (Multi-touch screens, экраны с определением множественных касаний) выдает трассу перемещения для каждого пальца. Отдельные пальцы или другие объекты, которые генерируют трассы перемещения, называются указателями (pointers). События перемещения содержат информацию о всех указателях, которые активны в настоящий момент, даже если некоторые из них не переместились с момента последнего полученного события.
Количество указателей всегда изменяется только на 1, когда отдельные указатели опускаются и поднимаются, за исключением случая отмены жеста.
Каждый указатель имеет уникальный идентификатор, который назначается при первом опускании (показывается кодом ACTION_DOWN или ACTION_POINTER_DOWN ). Идентификатор указателя остается валидными, пока указатель не поднимется (показывается кодом ACTION_UP или ACTION_POINTER_UP ), или когда жест отменен (показывается кодом ACTION_CANCEL ).
Класс MotionEvent предоставляет несколько методов для опроса позиции и других свойств указателей, такие как getX(int) , getY(int) , getAxisValue(int) , getPointerId(int) , getToolType(int) и многие другие. Большинство этих методов принимают индекс указателя в качестве параметра, а не идентификатор указателя. Индекс каждого указателя находится в диапазоне от 0 до getPointerCount() -1.
Заранее не определен порядок, в котором указатели появляются в событии перемещения. Таким образом индекс одного и того же указателя может поменяться от одного события к другому, но идентификатор указателя гарантированно останется неизменным, пока указатель остается активным. Используйте метод getPointerId(int), чтобы получить идентификатор указателя, и отслеживать его через последующие события перемещения в жесте. Тогда для последовательных событий перемещения используйте метод findPointerIndex(int), чтобы получить индекс указателя на предоставленный идентификатор указателя в этом событии перемещения.
Мышь и кнопки стилуса могут быть получены с использованием getButtonState() . Хорошая идея проверить состояние кнопки при обработки ACTION_DOWN как части события касания. Приложение может выполнять разные действия при появлении события касания, если событие касания сопровождается вторым нажатием на кнопку, как например вызов контекстного меню.
[Пакетная обработка (Batching)]
Для эффективности события перемещения с ACTION_MOVE могут группировать вместе несколько выборок перемещения в один объект (batch). Самые актуальные текущие координаты доступны через вызов getX(int) и getY(int). Предыдущие координаты в batch доступны через getHistoricalX(int, int) и getHistoricalY(int, int). Координаты будут «историческими» (historical) только потому, что они старше текущих координат в batch; однако они все равно более актуальные, чем другие координаты, которые были получены в других событиях перемещения. Чтобы обработать все координаты в batch с привязкой по времени, сначала рассмотрите historical-координаты и затем текущие координаты.
Пример, получение всех выборок для всех указателей в порядке по времени:
[Типы устройств]
Интерпретация содержимого MotionEvent значительно варьируется в зависимости от источника класса устройства.
Для устройств указания с исходным классом SOURCE_CLASS_POINTER , таких как тачскрины, координаты указателя показывают абсолютные позиции, такие как координаты X/Y представления. Каждый полный жест представлен последовательностью событий перемещения с действиями, которые описывают переходы состояний указателя и перемещения. Жест начинается с события перемещения ACTION_DOWN, которое предоставляет место первого опускания указателя. Для каждого дополнительного указателя, который опускается вниз или вверх, фреймворк будет генерировать событие перемещения с ACTION_POINTER_DOWN или ACTION_POINTER_UP соответственно. Перемещения указателя описаны в событиях перемещения с ACTION_MOVE. Окончание жеста происходит либо когда поднимается последний указатель (по событию перемещения с ACTION_UP), или когда жест отменен (с событием перемещения ACTION_CANCEL).
Некоторые устройства указания, такие как мыши, могут поддерживать вертикальную и/или горизонтальную прокрутку (scrolling). Событие прокрутки сообщается как обычное событие перемещений с ACTION_SCROLL , которое включает в себя смещение прокрутки в по осям AXIS_VSCROLL и AXIS_HSCROLL . См. описание getAxisValue(int) для дополнительной информации как получать эти дополнительные оси.
Устройства трекбол с исходным классом SOURCE_CLASS_TRACKBALL получают координаты указателя, которые задают относительное перемещение (изменение) по осям X/Y. Жест трекбола состоит из последовательности перемещений, описанных событиями перемещения с ACTION_MOVE, перемежающимися со случающимися событиями ACTION_DOWN или ACTION_UP, когда кнопки трекбола нажимаются или отпускаются.
Устройства джойстика с исходным классом SOURCE_CLASS_JOYSTICK , получают координаты указателя с абсолютной позицией по осям джойстика. Значения осей джойстика нормализуются к диапазону от -1.0 до 1.0, где 0.0 соответствует центральному положению. Больше информации по набору доступных осей и диапазону перемещений можно получить через getMotionRange(int). Общие оси джойстика: AXIS_X, AXIS_Y, AXIS_HAT_X, AXIS_HAT_Y, AXIS_Z и AXIS_RZ.
Обратитесь к InputDevice для дополнительной информации о различных видах устройств ввода, источниках, предоставляющих координаты указателя.
[Гарантии согласованности]
События перемещения всегда передаются в представления (view) как последовательный поток событий. Что из себя представляет последовательный поток — зависит от типа устройства. Для событий касания последовательность включает в себя информацию по опусканию указателей с привязкой ко времени, групповым перемещением, и затем с поднятием по одному или с отменой жеста.
Хотя фреймворк пытается передать непрерывный поток событий перемещения к элементам интерфейса (View), нет полной гарантии о передаче всех событий. Некоторые события могут быть отброшены или модифицированы элементами интерфейса в приложении до того, как будут доставлены, в результате чего поток событий будет неполным. Элементы интерфейса (View) должны быть всегда готовы к обработке ACTION_CANCEL и должны быть толерантны к аномальным ситуациям, таким как прием нового ACTION_DOWN без предварительного получения ACTION_UP для предыдущего жеста.
Полное описание констант и методов класса см. в [1].
[Пример: определение места касания экрана]
Для того, чтобы определить место касания экрана в программе Android, переопределите метод onTouchEvent для в классе Activity:
[Пример: определение места касания на виджете ImageView]
MotionEvent может использоваться для определения мест касания на изображении, чтобы по ним предпринимать различные действия. Простой пример — двухпозиционный выключатель, на левой картинке он в положении «OFF» (выключено), а на правой в положении «ON» (включено).
Идея состоит в следующем: при нажатии на верхнюю часть картинки выключатель должен «включаться» (т. е. должна показываться картинка, где выключатель в положении ON), а когда нажатие происходит на нижнюю часть картинки, то выключатель должен «выключаться» (должна показываться картинка, где выключатель в положении OFF). Далее процесс по шагам.
1. Создайте 2 картинки для состояний выключателя ON и OFF в виде файлов формата PNG, назовите эти файлы switch_on.png и switch_off.png соответственно. Положите их в папку res\drawable\ проекта. Сделайте Clean для проекта, чтобы в файле R.java сгенерировались идентификаторы для картинок.
2. Бросьте на форму программы виджет ImageView, дайте ему понятный идентификатор, например imageSwitch. В качестве источника картинки для ImageView укажите ресурс switch_off (это наша картинка для выключенного состояния выключателя). В результате в файле activity_main.xml появится определение наподобие следующего:
3. В обработчике в класс Activity программы добавьте переменную ImageView, и в обработчике onCreate сделайте инициализацию этой переменной, привязав её к добавленному виджету imageSwitch. Добавьте также для этой переменной обработчик события OnTouchListener. Вот полный код для onCreate активности:
Источник
Русские Блоги
Система координат окна и события касания экрана в Android
1. Система координат Android
В физике для описания движения объекта необходимо выбрать систему отсчета. Так называемое скольжение — это движение относительно системы отсчета. В Android вершина в верхнем левом углу экрана берется за начало системы координат Android. От этой точки вправо — положительное направление оси X, а от этой точки вниз — положительное направление оси Y, как показано на следующем рисунке:
Система предоставляет такой метод, как getLocationOnScreen (int location []), чтобы получить местоположение средней точки системы координат Android, то есть левый верхний угол представления находится на Android. Координаты системы координат. Кроме того, координаты, полученные с помощью методов getRawX () и getRawY () в событии касания, также являются координатами в системе координат Android.
2. Просмотр системы координат
В дополнение к системе координат, упомянутой выше, в Android также существует система координат представления, которая описывает позиционные отношения дочернего представления в родительском представлении. Эти две системы координат не противоречат друг другу и не сложны, и их роли дополняют друг друга. Подобно системе координат Android, система координат представления также принимает начало координат вправо в качестве положительного направления оси X и начало координат вниз в качестве положительного направления оси Y, но в системе координат представления начало координат больше не является самым экраном в системе координат Android. Верхний левый угол, но сВерхний левый угол родительского представленияНачало координат, как показано на рисунке ниже:
В событии касания координаты, полученные с помощью getX () и getY (), являются координатами в системе координат представления.
3. Коснитесь event-MotionEvent.
Событие касания MotionEvent занимает центральное место в процессе взаимодействия с пользователем, а хорошее изучение сенсорных событий является основой для освоения последующего контента. Во-первых, давайте взглянем на некоторые общие константы событий, инкапсулированные в MotionEvent, которые определяют различные типы событий касания.
Обычно мы используем event.getAction () в методе onTouchEvent (событие MotionEvent) для получения типа события касания и используем метод switch-case для фильтрации. Шаблон кода в основном фиксирован, как показано ниже:
В случае отсутствия многоточечных операций приведенный выше код обычно можно использовать для завершения мониторинга событий касания, но это всего лишь шаблон кода, мы завершим конкретную логику в событии касания позже.
В Android система предоставляет множество методов для получения значений координат, относительных расстояний и т. д. Богатые методы — это хорошо, но они также сбивают с толку новичков. Я не знаю, какой метод использовать при каких обстоятельствах. Ниже приводится сводка некоторых API-интерфейсов в сочетании с системой координат Android, чтобы увидеть, как их использовать, как показано на следующем рисунке:
- Метод просмотра для получения координат
GetTop (): получение расстояния от верха самого представления до верха его родительского представления.
getLeft (): получает расстояние от левой стороны самого представления до левой стороны его родительского представления.
getRight (): получить расстояние от правой стороны самого представления до левой стороны его родительского представления.
getBottom (): получить расстояние от низа самого представления до верха его родительского представления.
- Методы, предоставляемые MotionEvent
GetX (): получить расстояние от точки касания от левой стороны обзора, то есть координаты обзора.
getY (): получить расстояние между точкой касания и верхней частью представления, которое является координатой представления.
getRawX (): получает расстояние до точки касания от левой стороны всего экрана, то есть абсолютные координаты.
getRawY (): получить расстояние от точки касания от верхней части всего экрана, то есть абсолютные координаты.
Примечание. Система координат представления относится к родительскому элементу управления.
Источник