2

应该下载什么手势文件并将其粘贴到 res 下的 Raw 文件夹中?如何从已下载的手势文件中识别用户绘制的手势。谁能告诉我这个?

如果我进行比较,我应该能够了解手势及其在已下载的手势文件中的描述。这将是识别手势库中手势(用户绘制)的最简单方法。

4

1 回答 1

3

在 android 模拟器中打开手势生成器应用程序然后 --> 单击添加手势 --> 在此处绘制您想要用于您的应用程序的手势。添加手势后,转到您的 Eclipse IDE --> 打开 ddms --> 打开文件资源管理器。

在文件资源管理器中有一个名为 mnt/sdcard/gestures 的文件夹,您可以找到您的手势文件。现在将该文件复制到您想要使用该手势操作的 Raw 文件夹中的项目中。

在那之后

  private GestureLibrary gestureLib;
private static final int LARGE_MOVE = 20;
private GestureDetector gestureDetector;

make your class implements OnGesturePerformedListener

//put following code inside your on create method

GestureOverlayView gestureOverlayView = new GestureOverlayView(this);
        View inflate = getLayoutInflater().inflate(your layout file, null);
        gestureOverlayView.addView(inflate);
        gestureOverlayView.setGestureColor(Color.TRANSPARENT);
        gestureOverlayView.setUncertainGestureColor(Color.TRANSPARENT);
        gestureOverlayView.setGestureStrokeLengthThreshold(LARGE_MOVE);
        gestureOverlayView.setGestureStrokeSquarenessTreshold(1);
        gestureOverlayView.addOnGesturePerformedListener(this);
        gestureOverlayView.setEventsInterceptionEnabled(true);



        try{
            gestureDetector = new GestureDetector(your class name.this, new SimpleOnGestureListener() {
                 @Override
                 public boolean onFling(MotionEvent e1, MotionEvent e2,float velocityX, float velocityY){

                     if (e1.getX() - e2.getX() > LARGE_MOVE) {

                        // do some thing here

                         return true;
                     } else if (e2.getX() - e1.getX() > LARGE_MOVE) {


                        // do some thing here 

                         return true;
                    }
                    return false;
                    } });
            }catch(NullPointerException e){
                e.printStackTrace();
            }

希望这对你有用。快乐编码

于 2012-10-19T05:47:09.523 回答