手势

来源:互联网 发布:三维地图制作软件 编辑:程序博客网 时间:2024/05/01 16:41

这里介绍的只是一个简单的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<Prediction> predictions = gestureLibrariLibrary.recognize(gesture);                // 遍历所有找到的Prediction对象                for (Prediction prediction : predictions) {                    if (prediction.name.equals("test2")){                        // 只有相似度大于6的手势才会被输出                        if (prediction.score > 6) {                        }                    }                }            }        });
0 0
原创粉丝点击