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

Analyse de l'utilisation de la reconnaissance de gestes en Android

Cette exemple analyse l'utilisation de la reconnaissance de gestes Gesture dans l'implémentation Android. Partageons-le avec tous pour que chacun puisse en bénéficier. Voici les détails :

Je suis ravi de pouvoir dans Android1.6de voir la fonction de reconnaissance de geste dans le sdk, j'ai toujours pensé à comment réaliser le contrôle des personnages de jeu par gestes (plus précisément, les gestes de stylo) dans Android. Enfin, je vois un peu de lumière. Cependant, pour que les gestes puissent contrôler les personnages de jeu aussi librement que les gestes de stylo, il reste encore beaucoup de détails à traiter.

Dans Android1.6Le simulateur contient un programme appelé Gestures Builder, qui permet de créer vos propres gestes (le code source de Gestures Builder se trouve dans sdk/samples, vous pouvez y jeter un coup d'œil si vous êtes intéressé). Les gestes créés seront enregistrés dans/sdcard/gestures, copiez ce fichier dans votre projet/res/Dans raw, vous pouvez utiliser ces gestes dans votre projet. Copiez-les dans/res/Les gestes dans raw sont en lecture seule, ce qui signifie que vous ne pouvez pas modifier ou ajouter de gestes. Si vous souhaitez implémenter des modifications, vous pouvez directement charger les fichiers gestures de la carte SD.

Dans cet exemple, j'ai créé un tel geste :

Étape 2 : Créer GestureOverlayView dans layout, cette vue transparente est utilisée pour dessiner des gestes au-dessus d'autres vues :

<?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>

Étape 3 : Charger Gesture :

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

Étape 4 : Ajouter la fonction de réponse OnGesturePerformedListener :

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

Ces quatre étapes permettent de réaliser un prototype simple de reconnaissance de Gesture :

Le résultat du programme est le suivant : écrire un a, le programme le reconnaît et affiche un toast avec un a :

Le code complet est le suivant :

package 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);
    // Nous voulons au moins une prédiction
    if (predictions.size() > 0) {
      Prediction prediction = (Prediction) predictions.get(0);
      // Nous voulons au moins un peu de confiance dans le résultat
      if (prediction.score > 1.0) {
        // Afficher l'incantation
        Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT).show();
      }
    }
  }
}

Les lecteurs intéressés par plus de contenu sur Android peuvent consulter les sujets spéciaux de ce site : 'Résumé des techniques d'opération activity en programmation Android', 'Résumé des techniques de vue View en programmation Android', 'Résumé des techniques de manipulation de la base de données SQLite en programmation Android', 'Résumé des techniques de manipulation des données au format JSON en programmation Android', 'Résumé des techniques de manipulation de la base de données en programmation Android', 'Résumé des techniques de manipulation des fichiers en programmation Android', 'Résumé des méthodes d'opération de la carte SD en programmation Android', 'Tutoriel d'entrée et de progression en programmation Android', 'Résumé des techniques de manipulation des ressources en programmation Android' et 'Résumé des utilisations des contrôles Android'

J'espère que les informations de cet article peuvent aider les développeurs Android.

Déclaration : Le contenu de cet article est extrait du réseau, propriété de l'auteur original, contribué et téléversé par les utilisateurs d'Internet, ce site n'en possède pas la propriété, n'a pas été édité par l'homme, ni n'assume la responsabilité des responsabilités juridiques associées. Si vous trouvez du contenu présumé enfreignant les droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu présumé enfreignant les droits d'auteur.)

Vous pourriez aussi aimer