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

Analyse der Verwendung von Gesture-Gesten recognition in Android

Dieser Artikel analysiert die Verwendung von Gesture-Gestenerkennung in Android und teilt dies mit Ihnen zur Referenz. Genauer gesagt:

很高兴能在Android1.6的sdk看到手势识别这一功能,之前一直在想,如何在android中实现nds游戏那样用手势(准确点应该是笔势)来控制游戏角色?现在总算看到一点曙光了,不过手势要做到笔势那样随心所欲地控制游戏人物,还有很多细节问题需要处理。

在Android1.6的模拟器里面预装了一个叫Gestures Builder的程序,这个程序就是让你创建自己的手势的(Gestures Builder的源代码在sdk问samples里面有,有兴趣可以看看)。创建的手势将被保存到/sdcard/gestures里面,把这个文件复制到你的工程/res/raw下,你就可以在你的工程里面使用这些手势了。复制到/res/raw下的手势是只读的,也就是说你不能修改或增加手势了,如果想实现增改的话,可以直接加载sd卡里面的gestures文件。

在例子中,我创建了这样的手势:

第二步:在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>

第三步:载入Gesture:

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

第四步:增加响应函数OnGesturePerformedListener:

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

以上四步就可以实现简单的Gesture识别原型了:

Das Programm erkennt, wenn Sie das Wort 'a' schreiben, und zeigt eine 'a' in einer Toast-Nachricht an:

Das vollständige Codebeispiel lautet wie folgt:

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);
    // Wir möchten mindestens eine Vorhersage haben
    if (predictions.size() > 0) {
      Prediction prediction = (Prediction) predictions.get(0);
      // Wir möchten mindestens ein bisschen Vertrauen in das Ergebnis haben
      if (prediction.score > 1.0) {
        // Zeige das Zauberwort
        Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT).show();
      }
    }
  }
}

Interessierte Leser, die mehr über Android-Inhalte erfahren möchten, können die Themen dieser Website überprüfen: 'Zusammenfassung der activity-Operationstechniken in der Android-Programmierung', 'Zusammenfassung der View-Techniken in der Android-Programmierung', 'Zusammenfassung der SQLite-Datenbankoperationstechniken in der Android-Programmierung', 'Zusammenfassung der JSON-Format-Datenbankoperationstechniken in der Android-Programmierung', 'Zusammenfassung der Datenbankoperationstechniken in der Android-Programmierung', 'Zusammenfassung der Dateioperationstechniken in der Android-Programmierung', 'Zusammenfassung der SD-Karte-Operationstechniken in der Android-Programmierung', 'Einführung und Fortschritt in der Android-Programmierung', 'Zusammenfassung der Ressourcenoperationstechniken in der Android-Programmierung' und 'Zusammenfassung der Android-Kontrollanwendung'.

Wir hoffen, dass die in diesem Artikel beschriebenen Inhalte für die Android-Programmierung von Nutzen sein werden.

Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet übernommen und gehört dem jeweiligen Urheber. Der Inhalt wurde von Internetnutzern freiwillig eingereicht und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht manuell bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie Inhalte finden, die möglicherweise urheberrechtlich geschützt sind, freuen wir uns über eine E-Mail an: notice#oldtoolbag.com (Bitte ersetzen Sie # durch @, wenn Sie eine Meldung senden, und fügen Sie relevante Beweise bei. Sobald die Inhalte als urheberrechtlich verletzt eingestuft werden, wird diese Website die fraglichen Inhalte sofort löschen.)

Möglicherweise gefällt Ihnen auch