Навигация
Главная
Поиск
Форум
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,372
новичок: vausoz
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Моделирование процесса передачи данных по магистрали с основным и резерв...
Моделирование станции технического обслуживания на GPSS + Отчет
Сравнение двух бинарных деревьев на Turbo Pascal + отчет

Реагирование на события 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 Комментариев · 3060 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
Пример работы с б...
Популярные загрузки
Самоучитель C++
MiniChat
PHP в примерах
Панель Календарь
Программирование ...
PrevInst
mmmJlabel
Советы от Даниилы...
Averaging [Исходн...
39 статьи по Delphi
Современное проек...
Последние загруж...
Report
CarGame [Исходник...
Обучение Borland ...
Панель Наша Кнопка
Шкрыль А. - Разра...
Эффект лампы на р...

Топ загрузок
Приложение Клие... 100793
Delphi 7 Enterp... 98016
Converter AMR<-... 20298
GPSS World Stud... 17059
Borland C++Buil... 14238
Borland Delphi ... 10373
Turbo Pascal fo... 7390
Калькулятор [Ис... 6080
Visual Studio 2... 5228
Microsoft SQL S... 3674
Случайные статьи
Duplicate unit name
Решения к главе 7
Снова о времени жи...
Как купить гель ла...
Простейшие комбина...
Анализ вывода муль...
Козырек для мытья ...
При перегрузке опе...
Этап выполнения
Аэродинамическое м...
Взаимнооднозначное...
Аппаратная реализа...
Язык С: операции н...
Продолжительность ...
Процесс создания и...
Поиграем с панелью...
Быстрые проверки
Линии границы
Визуальные аффекты
Программа перечисл...
Мумие алтайское
смарт-карты или ко...
Интерактивные онла...
Кроме затрат, связ...
Алгоритмы с вектор...
Статистика



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


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