Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 9
На сайте нет зарегистрированных пользователей

Пользователей: 13,364
новичок: eqvufy
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование системы управления качеством производственного процесса на...
Моделирование интернет кафе на GPSS + Отчет
Моделирование ЭВМ на GPSS (три класса заданий) + Пояснительная записка

Реагирование на события onDrag в зоне сбрасывания
А сейчас мы приступим к анализу самого интересного кода. Для зоны сбрасывания необходимо создать цель, на которую должны перетаскиваться точки. Как упоминалось ранее, компоновка определяет на экране зеленый квадрат и рядом с ним текстовое сообщение. Поскольку зона сбрасывания также является фрагментом, переопределяется метод onCreateView класса DropZone. Первым делом понадобится наполнить компоновку зоны сбрасывания и затем извлечь ссылку на представление для квадратной цели (dropTarget) и для текстового сообщения (dropMessage). После этого необходимо настроить слушатель перетаскивания для цели, чтобы знать, когда перетаскивание начинается.
Слушатель перетаскивания для цели сбрасывания имеет единственный метод обратного вызова: onDrag. Этот обратный вызов будет принимать ссылку на представление, а также объект DragEvent. Ссылка на представление относится к представлению, с которым связан объект DragEvent. Как упоминалось ранее, слушатель перетаскивания не обязательно подключается к представлению, которое будет взаимодействовать с событием перетаскивания, так что этот обратный вызов должен идентифицировать представление, для которого возникло событие перетаскивания.
Одним из первых шагов, который, вероятно, будет предприниматься в любом обратном вызове onDrag, является чтение действия из объекта DragEvent. Это позволит выяснить, что происходит. По большей части, единственное, что необходимо сделать в данном обратном вызове — это фиксация факта, связанного с возникновением события перетаскивания. Например, для события ACTION_DRAG_LOCATION в действительности ничего делать не понадобится. Однако нужно будет предусмотреть выполнение специальной логики для случая, когда объект перетаскивается внутрь заданных границ (ACTION_DRAG_ENTERED); эта логика должна отключаться, если объект либо находится вне этих границ (ACTION_DRAG_EXITED), либо же он сбрасывается (ACTION_DROP).
Здесь используется класс ObjectAnimator, введенный в, но только в коде для указания циклического интерполятора, который изменяет значение альфа-канала цели. Это обеспечит эффект пульсирования прозрачности зеленой квадратной цели, что послужит визуальной индикацией готовности цели к приему перетаскиваемого объекта. Поскольку включается анимация, необходимо позаботиться о ее отключении, когда объект отпускается или сбрасывается, т.е. когда перетаскивание завершено. Теоретически анимация должна быть остановлена при обработке события ACTION_DRAG_ENDED, но разумно останавливать ее во всех случаях.
Для этого конкретного слушателя перетаскивания необходимо получать только события ACTION_DRAG_ENTERED и ACTION_DRAG_EXITED, если перетаскиваемый объект взаимодействует с представлением, с которым он ассоциирован. И, как будет, события ACTION_DRAG_LOCATION происходят, только когда перетаскиваемый объект находится внутри целевого представления.
Единственным другим интересным условием является само действие ACTION_DROP (обратите внимание, что имя этого действия не содержит часть DRAG_). Когда объект сбрасывается на представление, это означает, что пользователь отпустил точку над зеленым квадратом. Поскольку сбрасывание этого объекта на зеленый квадрат ожидалось, можно просто прочитать данные из первого элемента и зафиксировать сообщение в LogCat. В производственном приложении объект ClipData, содержащий само событие перетаскивания, может потребовать более пристального внимания. Просмотрев его свойства, можно принять решение о том, принимать сбрасывание или нет.
Самое время обратить внимание на булевский результат метода обратного вызова onDrag. В зависимости от обстоятельств, необходимо сообщить Android о том, позаботились ли вы о событии перетаскивания (вернув true) или же нет (вернув false). Если вы не обнаруживаете внутри объекта события перетаскивания нужных данных, можете вернуть из этого метода обратного вызова значение false, которое сообщит Android, что это сбрасывание не было обработано. http://bs-rent.ru/
После фиксации в LogCat сведений из события перетаскивания производится увеличение на единицу счетчика полученных сбрасываний; это приводит к обновлению пользовательского интерфейса в части, касающейся DropZone.
Если вы еще раз на код этого класса, вы найдете его довольно простым. В нем нет ни кода, который бы работал с объектами MotionEvent, ни даже кода, который бы определял, происходит ли перетаскивание. Вы лишь получаете соответствующие обратные вызовы по мере того, как протекает последовательность перетаскивания.
Опубликовал katy February 17 2015 19:11:36 · 0 Комментариев · 2419 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Delphi 6 программ...
VksButton
PBEditPack
Delphi 6. Учебный...
Простой пример ка...
Нестандартные при...
AlnComponents
Создание меню на ...
Flash MP3 Player ...
PHP/MySQL для нач...
Email
Billenium Effects...
Pirc
TelBook
Песочные часы
Х. М. Дейтел, П. ...
Панель Календарь
ИНТЕРНЕТ ПРОГРАММ...
CoolDev TipsSyste...
Удаление своего EXE

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97832
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10290
Turbo Pascal fo... 7373
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Атрибуты и свойства
Казино Jet
HTPC на базе Windows
История опытов Нил...
Функции обработки ...
СВОЙСТВО ИЛИ ПОЛЕ?
5.4.2. Чтение файлов
НАСЛЕДОВАНИЕ
клиентов удаленног...
Удаление элементов...
Как вывести сайт и...
Утилиты: библиотек...
Параметры по умолч...
Геометрические фигуры
Вы можете настроит...
Функция list1
Автоматы играть на...
этого службу Telne...
Осваивайте PowerSh...
Порты ТСР и UDP, н...
Бонусы казино Вулк...
В текстовом файле ...
Визуальные эффекты
Приведение типов и...
Шаблоны классов
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?