Freigeben über


Перетрясти приложение WP7 легко с помощью библиотеки Shake Gesture

Грег Дункан

clip_image002

Сегодня добавление поддержки жестов к приложению WP7, связанных со встряхиванием устройства требует некоторой работы. Отсутствие встроенных возможностей означает, что превратить исходные данные акселерометра в жесты можно с помощью подписки на события.

То есть так было до появления на App Hub библиотеки Shake Gesture Library. С помощью этой библиотеки, добавляющей поддержку жестов встряхивания в приложения WP7, можно сразу добиться этого с помощью ссылок и подписки на события.

Сообщение Windows Phone Shake Gestures Library из блога Windows Phone Developer Blog дает солидную порцию информации, деталей, советов и трюков по работе с этой библиотекой.

"Несколько очень удачных мобильных приложений используют акселерометры в качестве главного устройства ввода. Наиболее часто применяемый в играх, симулирующих полеты или вождение автомобиля, акселерометр является крайне мощным средством в мобильных устройствах. Но есть и другие приложения и игры, использующие акселерометр. Вообразите приложение вроде магического шара, когда нужно встряхнуть телефон чтобы получить правильный ответ на очень трудный вопрос или реализацию игрового автомата казино, где надо потрясти телефон, чтобы бросить кости, или что-то подобное. Интерфейсный аспект понятен – просто потрясти или подвинуть телефон, чтобы запустить некоторую функцию.

В Windows Phone предусмотрена полная поддержка для акселерометра, и API относительно прост в использовании. С учетом сказанного, хотя очевидный API для работы с исходными данными акселерометра Windows Phone является хорошей стартовой точкой, но если хочется добавить логику и жесты, вроде распознавания встряхивания, придется поработать самому.

Да, повезло вам; вы читаете этот блог, что означает, что вы узнаете о библиотеке Windows Phone Shake Gesture Library, применяющей акселерометр для регистрации встряхивания в трехмерном пространстве (по трем разным осям – X, Y, Z)."

Использование библиотеки происходит крайне просто…

"...

Использование библиотеки Shake Library в приложениях

После загрузки библиотеки у вас появится файл ShakeGestures. dll. Выполните следующие пять шагов для установки:

1. Добавьте ссылку на библиотеку ShakeGestures . dll .

2. Добавьте оператор using в заголовок файла: usingShakeGestures ;

3. Зарегистрируйте событие ShakeGesture

// регистрация события «встряска»

ShakeGesturesHelper.Instance.ShakeGesture += new

EventHandler<ShakeGestureEventArgs>(Instance_ShakeGesture);

// дополнительный параметр настройки

ShakeGesturesHelper.Instance.MinimumRequiredMovesForShake = 4;

4. реализуйте программу обработки ShakeGesture с шага 3:

private void Instance_ShakeGesture(object sender, ShakeGestureEventArgs e)

{

_lastUpdateTime.Dispatcher.BeginInvoke(

() =>

{

_lastUpdateTime.Text = DateTime.Now.ToString();

CurrentShakeType = e.ShakeType;

});

}

Аргумент ShakeGestureEventArgs содержит свойство ShakeType, определяющее направление тряски.

5. Наконец, активируйте помощник по встряскам, который свяжет акселерометр телефона и начнет прослушивать входящие события с сенсора.

// start shake detectionShakeGesturesHelper.Instance.Active = true;

..."

Как и в большинстве библиотек и рецептов App Hub мы не только предоставляем пример, но также и исходники библиотеки.

clip_image004

Вот фрагмент кода с примером использования библиотеки:

clip_image006

Вместе с библиотекой идут 10 страниц документации, обеспечивающие детальное описание библиотеки и того, как она работает;

clip_image008

Некоторые ссылки помогут в случае, если у вас нет устройства WP7 и нужно смоделировать акселерометр на эмуляторе: