1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình Android: Ứng dụng Gesture docx

6 365 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 142,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Có thể nói nó là 1 trong những phần hay nhất của SmartPhone.. “Gesture” dùng để nhận diện các chử cái hay ký hiệu mà bạn viết trên màn hình Dùng tay vẽ trên màn hình cảm ứng.. Trong bài

Trang 1

Bạn đã bao giờ nghe từ “Gesture” trong Android ? Có thể nói nó là 1 trong những phần hay nhất của SmartPhone “Gesture” dùng để nhận diện các chử cái hay ký hiệu mà bạn viết trên màn hình (Dùng tay vẽ trên màn hình cảm ứng) Trong bài viết này mình

sẽ demo cách thức hoạt động của Gesture và tạo ra 1 ứng dụng nhận diện ký tự hoàn chỉnh.

Đầu tiên các bạn phải vào Gesture Builder để xây dựng bộ thư viện cho Gesture (hay nói nôm na là bạn định nghĩa cái bạn sẽ vẽ ra) Các bạn vào Virtual Devices (có định

có 2 Button, bạn chọn Add gesture và tự định nghĩa :

Trang 2

Khi đã hài lòng với Gesture của mình, bạn bấm vào button Done và sẽ được kết quả (bạn có thể định nghĩa nhìu Gesture cho 1 ký tự như ký tự e của mình):

Trang 3

Tạo xong thư viện bạn tạo tiếp ứng dụng như sau:

1/ Tạo Project :

Project name: GestureRevealer

Build Target: Android 2.3.3

Application name: GestureRevealer

Package name: com.dac.GestureRevealer

Create Activity: MainActivity

2/Trong file main.xml các bạn thiết kế như sau:

Trang 4

<?xml version="1.0" encoding="utf-8"?>

<! This file is /res/layout/main.xml >

<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="Draw gestures and I'll guess what they are"

/>

<android.gesture.GestureOverlayView

android:id="@+id/gestureOverlay"

android:layout_width="fill_parent" android:layout_height="fill_parent"

android:gestureStrokeType="multiple" android:fadeOffset="1000"

/>

</LinearLayout>

3/ Và trong file MainActivity.java các bạn code như sau:

package com.dac.GestureRevealer

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.util.Log;

import android.widget.Toast;

public class MainActivity extends Activity implements

OnGesturePerformedListener {

private static final String TAG = "Gesture Revealer";

GestureLibrary gestureLib = null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

gestureLib = GestureLibraries.fromFile("/sdcard/gestures");

if (!gestureLib.load()) {

Trang 5

Toast.makeText(this, "Could not load /sdcard/gestures",

Toast.LENGTH_SHORT).show();

finish();

}

Log.v( TAG, "Library features:");

Log.v( TAG, " Orientation style: " +

gestureLib.getOrientationStyle());

Log.v( TAG, " Sequence type: " + gestureLib.getSequenceType()); for( String gestureName : gestureLib.getGestureEntries() ) {

Log.v( TAG, "For gesture " + gestureName);

int i = 1;

for( Gesture gesture : gestureLib.getGestures(gestureName) ) { Log.v( TAG, " " + i + ": ID: " + gesture.getID());

Log.v( TAG, " " + i + ": Strokes count: " +

gesture.getStrokesCount());

Log.v( TAG, " " + i + ": Stroke length: " +

gesture.getLength());

i++;

}

}

GestureOverlayView gestureView = (GestureOverlayView)

findViewById(R.id.gestureOverlay);

gestureView.addOnGesturePerformedListener(this);

}

public void onGesturePerformed(GestureOverlayView view, Gesture

gesture) {

ArrayList<Prediction> predictions = gestureLib.recognize(gesture);

Log.v( TAG, "in onGesturePerformed");

if (predictions.size() > 0) {

Prediction prediction = (Prediction) predictions.get(0);

if (prediction.score > 1.0) {

Toast.makeText(this, prediction.name,

Toast.LENGTH_SHORT).show();

for(int i=0;i<predictions.size();i++)

Log.v( TAG, "prediction " + predictions.get(i).name + " - score = " +

predictions.get(i).score);

}

}

}

}

Cuối cùng các bạn debug ứng dụng và vẽ vào:

Trang 6

Mọi ý kiến đóng góp các bạn vui lòng gữi bài viết về http://forum.laptrinhdidong.vn Rất mong nhận được sự phản hồi từ các bạn

Ngày đăng: 08/08/2014, 16:21

TỪ KHÓA LIÊN QUAN

w