Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Методичні вказівки до лабораторних робіт з дисципліни: " Програмування мобільних пристроїв " для студентів напряму підготовки

Методичні вказівки до лабораторних робіт з дисципліни: " Програмування мобільних пристроїв " для студентів напряму підготовки




Сторінка5/5
Дата конвертації10.03.2017
Розмір0.65 Mb.
ТипМетодичні вказівки
1   2   3   4   5

Мета лабораторної роботи

Розробка додатка, що допомагає зрозуміти принципи роботи з жестами користувачами, що вводяться.


6.1 Вступ

Починаючи з версії 1.6, Android надає API для роботи з жестами, який розташовується в пакеті android.gesture і дозволяє зберігати, завантажувати, створювати і розпізнавати жести.

У цій роботі розглянемо процес створення набору жестів, для створення жестів використовуватимемо додаток Gesture Builder, який установлено на віртуальні облаштування Android (AVD), починаючи з версії 1.6.

Після цього розробимо додаток, в якому передбачається розпізнавання і використання створених жестів.


6.2 Створення набору жестів

Спершу створимо нове застосування.

Далі запустимо емулятор і використаємо додаток Gesture Builder для створення жестів "1", "2" і "S". Жест завжди пов'язаний з ім'ям, але ім'я не обов'язково має бути унікальним, насправді, для підвищення точності в розпізнаванні жесту рекомендується зберігати декілька жестів з одним і тим же ім'ям.

На мал. 11.1 можна побачити додаток Gesture Builder в роботі, щоб додати жест, необхідно натиснути на кнопку Add gesture, у вільному просторі зображувати жест (зазвичай він малюється жовтим кольором), в полі введення задати ім'я жесту. Результат послідовного додавання жестів можна побачити на мал. 11.2.

Жести зберігаються на SD карті емулятора, щоб використати їх в додатку необхідно імпортувати файл жестів в проект.
создание жестов с помощью приложения gesture builder

Рисунок 6.1 - Створення жестів за допомогою додатка Gesture Builder


набор жестов, созданных в приложении gesture builder

Рисунок 6.2 - Набір жестів, створених в додатку Gesture Builder


Коментар: Gesture Builder може повідомити, що йому нікуди зберігати жести, в цьому випадку необхідно запустити емулятор з образом SD карти.

Спочатку образ треба створити за допомогою утиліти mksdcard (розташована в теці /sdk/tools, де - шлях, куди встановлений Android SDK). У командному рядку напишемо:

mksdcard - l mySdCard 64m gesture.img

Наступним кроком буде створення і запускання емулятора з образом gesture.img, для цього зайдемо в теку /sdk/tools і виконаємо команду:

emulator - avd nameEmulator - sdcard gestures.img

nameEmulator - ім'я, яке присвоєне емулятору при створенні.

Цікава стаття на цю тему по посиланню: http://habrahabr.ru/post/120016/

Кожного разу, коли ми створюємо або редагуємо жести за допомогою Gesture Builder, створюється файл gestures на SD карті емулятора. Необхідно імпортувати цей файл в директорію res/raw/, створеного проекту, в якому плануємо використати жести.


расположение файла gestures

Рисунок 6.3 - Розташування файлу gestures


Найпростіший спосіб імпортувати жести в проект полягає у використанні вкладки File Explorer в компонуванні (perspective) DDMS. (Якщо компонування DDMS немає знайти його можна таким чином: Window ->Open Perspective ->Other...->DDMS. Якщо вкладки File Explorer немає, можна додати: Window -> Show View -> File Explorer). На вкладці File Explorer знайти директорію sdcard/ (у нашому випадку опинилася директорія storage/sdcard/, має сенс при створенні жестів звернути увагу в яку директорію Gesture Builder їх зберігає). На мал. 11.3 показана вкладка File Explorer в компонуванні DDMS.

Щоб скопіювати файл жестів з емулятора в проект, необхідно вибрати його і натиснути кнопку "Pull a file from the device", виділену на мал. 11.3 червоною подібністю кола. Відкриється діалог з пропозицією вибрати теку, в яку необхідно скопіювати жести, тут потрібно знайти теку проекту, в ній теку res/raw/ (якщо теки raw/ немає, її необхідно створити) і натиснути кнопку Зберегти. Тепер жести є в нашому проекті і їх можна використати.


6.3 Використання створених жестів в додатку

Для розпізнавання жестів необхідно додати елемент GestureOverlayView в XML-файл активності. І цей файл може виглядати, наприклад, як показано на мал. 11.4:


xml файл активности приложения, элемент gestureoverlayview обычный компонент интерфейса пользователя

Рисунок 6.4 – XML-файл активності додатка, елемент GestureOverlayView звичайний компонент інтерфейсу користувача


Можна додати елемент GestureOverlayView поверх усіх компонентів, як прозорий шар, в цьому випадку XML файл активності може виглядати так, як показано на мал. 11.5.
xml файл активности приложения, элемент gestureoverlayview обычный компонент интерфейса пользователя

Рисунок 6.5 - XML файл активності додатка, елемент GestureOverlayView поверх усіх компонентів інтерфейсу користувача


Далі необхідно обробити введення жесту користувача, порівняти із завантаженими жестами, і або визначити жест, або повідомити користувача, що такого жесту немає. Тепер уся робота виконуватиметься в java файлі, що описує головну (і єдину) активність додатка. Внесемо в цей клас наступні доповнення:

- Клас активності повинен реалізовувати інтерфейс OnGesturePerformedListener, для цього в оголошення класу додамо конструкцію:

implements OnGesturePerformedListener;

- Нам знадобляться екземпляри класів GestureLibrary і GestureOverlayView, тому в якості полів класу активності оголосимо наступні змінні:

GestureLibrary gLib;

GestureOverlayView gestures;

- В методі onCreate () виконаємо наступні дії:

gLib = GestureLibraries.fromRawResource (this, R.raw.gestures);

if (!gLib.load()) {

finish ();

}

У першому рядку виконана ініціалізація змінної gLib жестами, завантаженими з файлу gestures теки res/raw/.



Оператор if виконує перевірку чи завантажені жести, якщо ні, виконується вихід з додатка.

- Додамо в метод onCreate () ще два рядки:

gestures = (GestureOverlayView) findViewById (R.id.gestureOverlayView1);

gestures.addOnGesturePerformedListener (this);

Для ініціалізації змінної gesture і підключення до неї слухача подій появи жесту.

- І нарешті напишемо реалізацію методу OnGesturePerformed (), який і викликатиметься при появі події, що відповідає якому-небудь жесту.

public void onGesturePerformed (GestureOverlayView overlay, Gesture gesture) {

//Створює ArrayList c завантаженими з gestures жестами

ArrayList
predictions = gLib.recognize (gesture);

if (predictions.size ()> 0) {

//якщо завантажений хотябы один жест з gestures

Prediction prediction = predictions.get (0);

if (prediction.score > 1.0) {

if (prediction.name.equals ("one"))

tvOut.setText ("1");

else if (prediction.name.equals ("stop"))

tvOut.setText ("stop");

else if (prediction.name.equals ("two"))

tvOut.setText ("2");

}else{


tvOut.setText ("Жест невідомий");

}

}



}

У додатку усього лише розпізнаються жести і в інформаційне поле виводиться інформація про те, що за жест був використаний. У лістингу 11.1 представлений можливий код додатка.


6.4 Висновок

В якості практичного завдання пропонуємо реалізувати жестами введення чисел в додатку "Угадайка", розробленому в лабораторній роботі другої теми. Створити жести "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" для введення цифр і жест "S" для зупинки введення числа. У додаток додати розпізнавання цих жестів, перетворення їх в число і порівняння отриманого числа із загаданим.

Ще варіанти для самостійної роботи:

1. розробити простий калькулятор з жестовим введенням чисел і операцій;

2. розробити блокнотик для заміток з рукописним введенням тексту.

Руко́пис, або манускри́пт (лат. manuscriptum, від manus - рука і scribo - пишу) - писемний документ, написаний від руки, звідки й назва.

package com.example.lab5 2 gestures;

import java.util.ArrayList;

import android.os.Bundle;

import android.app.Activity;

import android.gesture.Gesture;

import android.gesture.GestureLibraries;

import android.gesture.GestureLibrary;

import android.gesture.GestureOverlayView;

import android.gesture.GestureOverlayView.OnGesturePerformedListener;

import android.gesture.Prediction;

import android.view.Menu;

import android.widget.TextView;

public class Gestures extends Activity implements OnGesturePerformedListener{

GestureLibrary gLib;

GestureOverlayView gestures;

TextView tvOut;

@Override

protected void onCreate (Bundle savedInstanceState) {

super.onCreate (savedInstanceState);

setContentView (R.layout.activity _ gestures);

tvOut= (TextView) findViewById (R.id.textView1);

//Завантаження жестів (gestures) з res/raw/gestures

gLib = GestureLibraries.fromRawResource (this, R.raw.gestures);

if (!gLib.load()) {

//Якщо жести не завантажені, то вихід з додатка

finish ();

}

gestures = (GestureOverlayView) findViewById (R.id.gestureOverlayView1);



gestures.addOnGesturePerformedListener (this);

}

@Override



public boolean onCreateOptionsMenu (Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater ().inflate (R.menu.gestures, menu);

return true;

}

public void onGesturePerformed (GestureOverlayView overlay, Gesture gesture) {



//Створює ArrayList c завантаженими з gestures жестами

ArrayList


predictions = gLib.recognize (gesture);

if (predictions.size ()> 0) {

//якщо завантажений хоч би один жест з gestures

Prediction prediction = predictions.get (0);

if (prediction.score > 1.0) {

if (prediction.name.equals ("one"))

tvOut.setText ("1");

else if (prediction.name.equals ("stop"))

tvOut.setText ("stop");

else if (prediction.name.equals ("two"))

tvOut.setText ("2");

}else{


tvOut.setText ("Жест невідомий");

}

}



}

}

Лістинг 11.1. Розпізнавання жестів завантажених у файл res/raw/gestures



Рекомендована література

Базова
1. Бланшет Ж. Qt 4: программирование GUI на C / Бланшет Ж., Саммерфилд М. ; пер. с англ. – 2-е изд., доп. – М. : КУДИЦ-ПРЕСС, 2008. – 736 с.

2. Голощапов А. Л. Google Android: программирование для мобильных устройств / Голощапов А. Л.

Android - (вимов. Андроїд) операційна система і платформа для мобільних телефонів та планшетних комп'ютерів, створена компанією Google на базі ядра Linux. Підтримується альянсом Open Handset Alliance (OHA).
– СПб. : БХВ-Петербург, 2011. – 448 с. : ил. CD-ROM – (Профессиональное программирование).

3. Здзиарски Дж. iPhone. Разработка приложений с открытым кодом / Здзиарски Дж. ; пер. с англ. – 2-е изд., перераб. и доп. – СПб. : БХВ-Петербург, 2009. – 368 с. : ил.

4. Махер А. Программирование для iPhone / Махер Али ; пер. с англ. – М. : Эксмо. 2010. – 368 с.

5. Петзольд Ч. Программируем Windows Phone 7 / Петзольд Ч.

Windows Phone (кодова назва «Photon») - велике оновлення Windows Mobile, що вийшло 11 жовтня 2010 року.
; пер. с англ. – Redmond, Washington 98052-6399: Microsoft Press, 2011. – 695 с.

6. С. Хашими, С. Разработка приложений для Android / С. Хашими, С. Коматинени, Д. Маклин – СПб. : Питер, 2011. – 736 с. : ил.


Додаткова
7. Байдачный С.С. Silverlight 4: Создание насыщенных Web-приложений / Байдачный С.С. – М.
Microsoft Silverlight - це розширення до веб-оглядачів, яке дозволяє відображати на сторінці анімацію, векторну графіку, а також програвати звук та відео, що є характерною рисою RIA (англ. Rich Internet Application - багатих інтернет додатків).
: СОЛОН-ПРЕСС, 2010. – 288 с. : ил.

8. Далримпл М. Objective-C 2.

Objective-C - рефлективна, високорівнева об'єктно-орієнтована мова програмування загального призначення, розроблена у вигляді набору розширень стандартної С.
0 и программирование для Мак / Далримпл М., Кнастер С. ; пер. с англ. – М. : ИД "Вильямс", 2010. – 320 с. : ил.

9. Дэрси Л. Android за 24 часа. Программирование приложений под операционную систему Google / Дэрси Л., Кондер Ш. – М. : Рид Групп, 2011. – 464 с.

10. Защита информации в мобильных системах связи : учебн. пособ. / A. В. Заряев, В. А. Минаев, С. В. Скрыль и др. – Воронеж : Воронежский ин-т МВД России, 2004. – 138 с.

11. Майер Р. Android 2: программирование для планшетных компьютеров и смартфонов / Ретро Майер ; пер. с англ.– М. : Эксмо, 2011. – 672 с.

12. Маковеева М. М. Системы связи с подвижными объектами / Маковеева М. М., Шинаков Ю. С. – М. : Радио и связь, 2002. – 440 с.

13. Невдяев Л. М. Мобильная связь 3-го поколения. Серия изданий "Связь и бизнес" / Невдяев Л. М. – М. : МЦНТИ: 000 "Мобильные коммуникации" 2000. – 208 с.

14. Радиоинтерфейсы наземных систем мобильного радиосервиса / В. В. Дурынин, Ю. Л. Хохленко, В. Д. Челышев и др. ; под ред. В. Д. Челышева. – СПб. : ВУС, 2001. – 236 с.

15. Труфанов А. Н. Symbian C . Программирование для мобильных телефонов / Труфанов А. Н. – М. : ИД "Вильямс", 2010. – 464 с. : ил.
Інформаційні ресурси
16. Беспроводные технологии. Википедия [Электронный ресурс]. – Режим доступа : http://uk.wikipedia.org/wiki/.

17. Все самое интересное из мира Windows Phone 7 [Електронний ресурс]. – Режим доступа : http://www.wp7rocks.com/.

18. Главная страница MSDN, MSDN по-русски [Электронный ресурс]. – Режим доступа : http://msdn.microsoft.com/ru-ru/.

19. Для настоящих программистов [Электронный ресурс]. – Режим доступа : http://www.realcoding.net/.

20. Интернет Университет Информационных Технологий – дистанционное образование [Электронный ресурс]. – Режим доступа : http://www.intuit.ru/.

21. Мобільний портал "Mobile Arsenal" [Електронний ресурс]. – Режим доступу : http://www.mobile-arsenal.com.ua/glossary/bluetooth_profiles /goep/.

22. Мобильные технологии [Электронный ресурс]. – Режим доступа : http://mob.ua/.

23. Розробка для Android [Електроний ресурс]. – Режим доступу : http://developer.android.com/.

24. Розробка для Bada [Електроний ресурс]. – Режим доступу : http://developer.bada.com/apis/.

25. Розробка для iPhone [Електроний ресурс]. – Режим доступу : https://developer.apple.com/devcenter/ios/.

26. Розробка для Windows Phone 7.5, Symbian [Електроний ресурс]. – Режим доступу : http://www.developer.nokia.com/Devices/.

27. Хабрахабр – Все для программиста [Электронный ресурс].

Хабрахабр (Хабр) - веб-сайт, який поєднує ознаки соціальної мережі і колективного блогу, створений для публікації новин, аналітичних статей, думок, пов'язаних із інформаційними технологіями, бізнесом та Інтернетом.
– Режим доступа : http://habrahabr.ru/.




1   2   3   4   5



  • 6.2 Створення набору жестів
  • 6.3 Використання створених жестів в додатку
  • 6.4 Висновок
  • Рекомендована література Базова
  • Google Android
  • Windows Phone
  • Додаткова 7. Байдачный С.С. Silverlight
  • Інформаційні ресурси