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

Análisis del uso de la detección de gestos en Android

Este artículo analiza el uso de la función de reconocimiento de gestos Gesture en Android. Lo compartimos con todos para su referencia. Detalles específicos a continuación:

Estoy muy contento de poder en Android1.6pude ver la función de reconocimiento de手势 en el sdk, siempre he estado pensando, ¿cómo se puede implementar en android el control de personajes de juegos nds mediante手势(más específicamente, debería ser trazos de pincel)? Ahora por fin he visto un poco de luz al final del túnel, pero para que los手势 puedan controlar a los personajes de juego como los trazos de pincel, aún hay muchos detalles que deben ser tratados.

En Android1.6El emulador tiene preinstalado un programa llamado Gestures Builder, que te permite crear tus propios手势(el código fuente de Gestures Builder se encuentra en sdk/samples, si estás interesado, puedes echarle un vistazo). Los手势 que crees se guardarán en/sdcard/gestures,copia este archivo a tu proyecto/res/Puedes usar estos手势 en tu proyecto copiándolos a/res/Los手势 en raw son de solo lectura, lo que significa que no puedes modificar o agregar手势,si quieres implementar la modificación, puedes cargar directamente el archivo gestures de la tarjeta SD.

En el ejemplo, he creado este tipo de手势:

Paso 2: En el layout crear GestureOverlayView, esta vista transparente es la que se utiliza para dibujar手势在上面,puede superponerse sobre otras 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>

Paso 3: Cargar Gesture:

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

Paso 4: Añadir la función de respuesta OnGesturePerformedListener:

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

Con estos cuatro pasos, se puede implementar un prototipo simple de reconocimiento deGesture:

El resultado de ejecución del programa es el siguiente, escribe una letra 'a', el programa la reconoce y muestra un toast con 'a':

El código completo es el siguiente:

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);
    // Queremos al menos una predicción
    if (predictions.size() > 0) {
      Prediction prediction = (Prediction) predictions.get(0);
      // Queremos al menos alguna confianza en el resultado
      if (prediction.score > 1.0) {
        // Mostrar la conjura
        Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT).show();
      }
    }
  }
}

Los lectores interesados en más contenido relacionado con Android pueden consultar la sección especial de este sitio: "Resumen de técnicas de operación de activity en programación de Android", "Resumen de técnicas de vista View en programación de Android", "Resumen de técnicas de operación de base de datos SQLite en Android", "Resumen de técnicas de operación de datos en formato JSON en Android", "Resumen de técnicas de operación de base de datos en Android", "Resumen de técnicas de operación de archivos en Android", "Resumen de métodos de operación de tarjeta SD en programación de Android", "Tutorial de inicio y avanzado de programación de Android", "Resumen de técnicas de operación de recursos en Android" y "Resumen de uso de controles en Android"

Espero que lo descrito en este artículo sea útil para la programación de aplicaciones Android de todos.

Declaración: el contenido de este artículo se obtiene de la red, pertenece al propietario original, se contribuye y carga espontáneamente por los usuarios de Internet, este sitio no posee los derechos de propiedad, no se ha editado artificialmente y no asume la responsabilidad de las obligaciones legales relacionadas. Si encuentra contenido sospechoso de copyright, le invitamos a enviar un correo electrónico a: notice#w3Deje un correo electrónico al códigobox.com (reemplace # con @) para denunciar, y proporcione evidencia relevante. Una vez confirmado, este sitio eliminará inmediatamente el contenido sospechoso de infracción.

Te gustará