zoukankan      html  css  js  c++  java
  • 2021.5.15 Android Gestures示例

    一、今日学习内容

       

    下滑关闭Activity,上滑启动新的Activity

    这里就用上述的SimpleOnGestureListener来实现吧:

    实现代码:

    复制代码
    public class MainActivity extends AppCompatActivity {
    
        private GestureDetector mDetector;
        private final static int MIN_MOVE = 200;   //最小距离
        private MyGestureListener mgListener;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //实例化SimpleOnGestureListener与GestureDetector对象
            mgListener = new MyGestureListener();
            mDetector = new GestureDetector(this, mgListener);
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            return mDetector.onTouchEvent(event);
        }
    
        //自定义一个GestureListener,这个是View类下的,别写错哦!!!
        private class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
    
            @Override
            public boolean onFling(MotionEvent e1, MotionEvent e2, float v, float v1) {
                if(e1.getY() - e2.getY() > MIN_MOVE){
                    startActivity(new Intent(MainActivity.this, MainActivity.class));
                    Toast.makeText(MainActivity.this, "通过手势启动Activity", Toast.LENGTH_SHORT).show();
                }else if(e1.getY() - e2.getY()  < MIN_MOVE){
                    finish();
                    Toast.makeText(MainActivity.this,"通过手势关闭Activity",Toast.LENGTH_SHORT).show();
                }
                return true;
            }
        }
    
    }
    复制代码

    结果分析: 从上面的对比就可以知道,相比起SimpleOnGestureListener使用SimpleOnGestureListener 显得更加的简单,想重写什么方法就重写什么方法,另外例子比较简单,大家可以自己试试 其他玩法,比如通过手势缩放图片~

    4.手势添加与识别:

    除了上面讲解的手势检测外,Android还运行我们将手势进行添加,然后提供了相关的识别API; Android中使用GestureLibrary来代表手势库,提供了GestureLibraries工具类来创建手势库!

    四个加载手势库的静态方法:

    获得GestureLibraries对象后,就可以使用该对象提供的下述方法来做相应操作了:

    相关方法:

    • public void addGesture (String entryName, Gesture gesture):添加一个名为entryName的手势
    • public Set<String> getGestureEntries ():获得手势库中所有手势的名称
    • public ArrayList<Gesture> getGestures (String entryName):获得entryName名称对应的全部手势
    • public ArrayList<Prediction> recognize (Gesture gesture): 从当前手势库中识别与gesture匹配的全部手势
    • public void removeEntry (String entryName):删除手势库中entryName名称对应的手势
    • public void removeGesture (String entryName, Gesture gesture):删除手势库中entryName和gesture都匹配的手势
    • public abstract boolean save ():想手势库中添加手势或从中删除手势后调用该方法保存手势库

    GestureOverlayView手势编辑组件:

    Android为GestureOverlayView提供了三种监听器接口,如下,一般常用的是:OnGesturePerformedListener;用于手势完成时提供响应!

  • 相关阅读:
    Nginx配置文件详解
    Mycat概述
    日志切割之Logrotate
    js数组(二)
    js数组(一)
    sass颜色
    scss
    HTML5新属性
    HTML5新元素
    Bootstrap
  • 原文地址:https://www.cnblogs.com/wmdww/p/14907186.html
Copyright © 2011-2022 走看看