English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье анализируется использование распознавания жестов в 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 (при отправке письма, пожалуйста, замените # на @) для жалоб, и предоставьте соответствующие доказательства. Если будет подтверждено, что содержимое нарушает авторские права, сайт немедленно удаляет涉嫌侵权的内容.