Навигация
Главная
Поиск
Форум
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
Реклама
Сейчас на сайте
Гостей: 12
На сайте нет зарегистрированных пользователей

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

База данных - рабочее место кассира на Delphi + бд Access
Создание последовательности окон и передвижение окон по экрану на Turbo ...
Моделирование станции технического обслуживания на 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 Комментариев · 2904 Прочтений · Для печати

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


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



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

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

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

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

Пароль



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

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

Случайные загрузки
HtmlLerz PRO
CaptionButton
Autorunner
DiskInfo
Импорт новостей ...
DemoEdit [Исходни...
БД студентов
DirHTMLReportBuil...
SMLPack v1.0
Отключение и вклю...
Черный круг двига...
Info
Delphix Sample [И...
Ильдар Хабибуллин...
Панель статистики...
Формирование отче...
База данных: Книж...
Шифрование по алг...
RxLIB
KOL & MCK v1.69

Топ загрузок
Приложение Клие... 100779
Delphi 7 Enterp... 97934
Converter AMR<-... 20285
GPSS World Stud... 17037
Borland C++Buil... 14206
Borland Delphi ... 10334
Turbo Pascal fo... 7381
Калькулятор [Ис... 6050
Visual Studio 2... 5214
Microsoft SQL S... 3667
Случайные статьи
Создание настраива...
и PKI Deployment
Язык С и С ++: ука...
Рассмотрим целочис...
ВОСХОДЯЩАЯ РЕКУРСИЯ
СОЗДАНИЕ SPLASH-ФО...
Стандарт IEEE 802....
Подпрограмма Input...
Вулкан Россия казино
Логическое «ИЛИ» (...
Условия коллектива
Технология маркиро...
Программа для масс...
Функции-друзья класса
Инструменты Visual...
Решения, по органи...
Можно было бы, кон...
Элементы коллекции...
Передача в едином ...
сети.• Клиенты Mic...
Запись центральног...
Преимущества игры ...
Внутренние докумен...
Метод обратного ра...
Процедура GetArcCo...
Статистика



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


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