手势

这里介绍的只是一个简单的DEMO,根据官方的API还可以进行自定义手势的编写,具体的内容就以后遇到了再说,在本项目中也只起一个开后门的验证作用,毕竟一个没有后门的APP不是一个好APP

画手势图:GestureOverlayView
画的时候存在几种状态,可利用GestureDetector中的类进行监听
1.onDown : 触碰
2.onFling:拖动
3.onLongPress:长按
4.onScroll:滚动
5.onSHowPress:按下,未移动未松动时
6.onSingleTagUp:轻击

// 获取手势编辑视图
gestureOverlayView = (GestureOverlayView) findViewById(R.id.gestureOverlayView);

// 设置手势绘图的颜色
gestureOverlayView.setGestureColor(Color.RED);

// 设置手势的绘制宽度
gestureOverlayView.setGestureStrokeWidth(10);

// 为gesture的手势完成事件绑定事件监听器
gestureOverlayView.addOnGesturePerformedListener new GestureOverlayView.OnGesturePerformedListener() {
 @Override
 public void onGesturePerformed(GestureOverlayView overlay, final Gesture gesture) {
    // 根据Gesture包含的手势创建一个位图
    Bitmap bitmap = gesture.toBitmap(128, 128, 10, 0xffff0000);
    imageView.setImageBitmap(bitmap);

    // 获取制定文件对应的手势库
    GestureLibrary guestureLibrary = GestureLibraries.fromFile(Environment
    .getExternalStorageDirectory().getPath() + "/mygestures");

   // 添加手势                                      
   guestureLibrary.addGesture(gestureEditText.getText().toString(), gesture);
   guestureLibrary.save();
});

读取:
读取和写入的时候都会用到一个GestureLibrary手势库,这个库提供了一个方法,gestureLibrariLibrary.recognize(gesture)这个方法可以获得泛型Prediction的结果,Prediction中包含两个属性,一个是手势图的名称,一个是当前你所绘制的手势与目标手势图的相似度,我们可以通过比较它们之间的相似度来实现我们的逻辑运算。
同样的,我们也需要为它们定义一个监听器,这个监听器也会在手势完成也就是手指抬起来的时候触发。

// 定义手势编辑组件绑定监听器
        gestureOverlayView.addOnGesturePerformedListener(new GestureOverlayView.OnGesturePerformedListener() {

            @Override
            public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
                // 识别用户刚刚所绘制的手势
                ArrayList predictions = gestureLibrariLibrary.recognize(gesture);

                // 遍历所有找到的Prediction对象
                for (Prediction prediction : predictions) {
                    if (prediction.name.equals("test2")){
                        // 只有相似度大于6的手势才会被输出
                        if (prediction.score > 6) {

                        }
                    }
                }
            }
        });

你可能感兴趣的:(手势,Android)