|
Пример: Скачать среду можно с сайта для разработчиков Android (http://developer.android.com/sdk/index.html). Там скачать можно только Android Studio |
Северный (Арктический) федеральный университет им. М.В. Ломоносова
Опубликован: 10.04.2014 | Доступ: свободный | Студентов: 7308 / 1641 | Длительность: 14:18:00
Специальности: Программист
Самостоятельная работа 6:
Принципы работы c жестами вводимыми пользователями
11.4 Заключение
В качестве практического задания предлагаем реализовать жестами ввод чисел в приложении "Угадайка", разработанном в лабораторной работе второй темы. Создать жесты "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" для ввода цифр и жест "S" для остановки ввода числа. В приложение добавить распознавание этих жестов, преобразование их в число и сравнение полученного числа с загаданным.
Еще варианты для самостоятельной работы:
- разработать простой калькулятор с жестовым вводом чисел и операций;
- разработать блокнотик для заметок с рукописным вводом текста.
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<Prediction> 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