English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Анализ использованияGesture для распознавания жестов в Android

В этой статье анализируется использование распознавания жестов в Android. Предоставляю это给大家 для ознакомления и использования. Подробности таковы:

Рад, что в SDK Android 1.6 я вижу функцию распознавания жестов. Раньше я постоянно думал, как можно реализовать в Android управление персонажем игры с помощью жестов (точнее, движений ручки). Наконец-то я вижу свет в конце тоннеля, но чтобы сделать жесты такими же свободными, как движения ручки, необходимо решить множество детальных проблем.

В симуляторе Android 1.6 предварительно установлена программа Gestures Builder, которая позволяет создавать свои собственныеGesture (исходный код Gestures Builder находится в sdk 问 samples, если интересно, можно看一下). СозданныеGesture сохраняются в /sdcard/gestures, скопируйте этот файл вyour проект/res/raw, и вы сможете использовать этиGesture в вашем проекте. Gesture, скопированные в/res/raw, являются только читаемыми, что означает, что вы не можете изменять или добавлятьGesture, если вы хотите это сделать, вы можете напрямую загрузить файлgestures сsd карты.

В примере я создал такиеGesture:

Шаг 2: В файле layout создатьGestureOverlayView, этот прозрачный view позволяет рисовать手势 на нем, он может лежать поверх других View:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
<TextView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="@string/hello"
  />
<android.gesture.GestureOverlayView
  android:id="@+id/gestures"
  android:layout_width="fill_parent"
  android:layout_height="0dip"
  android:layout_weight="1.0"
  />
</LinearLayout>

Шаг 3: ЗагрузитьGesture:

mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
if (!mLibrary.load()) {
  finish();
}

Шаг 4: Добавить функцию обработкиGestureOnGesturePerformedListener:

GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
gestures.addOnGesturePerformedListener(this);

Эти четыре шага позволяют реализовать простую прототипGesture recognition:

Результат выполнения программы: пишем символ 'a', программа распознает его, затем toast появляется 'a':

Полный код приведен ниже:

пакет com.ray.test;
import java.util.ArrayList;
import android.app.Activity;
import android.gesture.Gesture;
import android.gesture.GestureLibraries;
import android.gesture.GestureLibrary;
import android.gesture.GestureOverlayView;
import android.gesture.Prediction;
import android.gesture.GestureOverlayView.OnGesturePerformedListener;
import android.os.Bundle;
import android.widget.Toast;
public class TestGesture extends Activity implements OnGesturePerformedListener{
  GestureLibrary mLibrary;
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
    gestures.addOnGesturePerformedListener(this);
    mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
    if (!mLibrary.load()) {
      finish();
    }
  }
  @Override
  public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
    ArrayList predictions = mLibrary.recognize(gesture);
    // Мы хотим хотя бы одного предсказания
    if (predictions.size() > 0) {
      Prediction prediction = (Prediction) predictions.get(0);
      // Мы хотим хотя бы некоторые уверенности в результате
      if (prediction.score > 1.0) {
        // Показать спелл
        Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT).show();
      }
    }
  }
}

Для тех, кто интересуется дополнительной информацией о Android, можно посмотреть темы на нашем сайте: "Суммарные советы по операциям activity в Android-программировании", "Суммарные советы по работе с Android-видами View", "Суммарные советы по работе с SQLite-базами данных в Android", "Суммарные советы по работе с json-файлами в Android", "Суммарные советы по работе с базами данных в Android", "Обзор советов по работе с файлами в Android", "Суммарные советы по работе с SD-картой в Android-программировании", "Руководство по началу и развитию Android-разработки", "Суммарные советы по работе с ресурсами в Android" и "Суммарные советы по использованию контроллеров в Android"

Надеюсь, что это руководство поможет вам в разработке Android-приложений.

Объявление: содержимое статьи взято из Интернета, авторские права принадлежат соответствующему автору. Контент предоставлен пользователями Интернета, веб-сайт не owns авторские права, не был отредактирован вручную и не несет ответственности за связанные с этим юридические вопросы. Если вы обнаружите контент,涉嫌侵犯版权, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (при отправке письма, пожалуйста, замените # на @) для жалоб, и предоставьте соответствующие доказательства. Если будет подтверждено, что содержимое нарушает авторские права, сайт немедленно удаляет涉嫌侵权的内容.

Основной учебник
Вам может понравиться