zoukankan      html  css  js  c++  java
  • 手势

    public class MainActivity extends Activity {
        private static final String TAG = "MainActivity";
        private GestureLibrary library;
        private Gesture mgesture;
        private GestureOverlayView overlayView;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            
            library = GestureLibraries.fromRawResource(this, R.raw.gestures);//通过raw下的静态文件构建手势库对象
            library.load();//注意:很重要,必须有
            
            overlayView = (GestureOverlayView) this.findViewById(R.id.gestures);
            //只针对单笔手势:overlayView.addOnGesturePerformedListener(new GesturePerformedListener());
            //下面是处理多笔手势的方法
            overlayView.addOnGestureListener(new GestureListener());
        }
        
        public void find(View v){
            recognize(mgesture);
            overlayView.clear(true);
        }
        ///处理多笔手势
        private final class GestureListener implements OnGestureListener{
            public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) {
                Log.i(TAG, "onGestureStarted()");
            }
            public void onGesture(GestureOverlayView overlay, MotionEvent event) {
                Log.i(TAG, "onGesture()");
            }
            public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) {
                Log.i(TAG, "onGestureEnded()");
                mgesture = overlay.getGesture();//获取多笔手势,并存储
            }
            public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) {
                Log.i(TAG, "onGestureCancelled()");
            }
        }
        
        //处理单笔手势
        private final class GesturePerformedListener implements OnGesturePerformedListener{
            public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
                recognize(gesture);
            }        
        }
        
        private void recognize(Gesture gesture) {
            ArrayList<Prediction> predictions = library.recognize(gesture);
            if(!predictions.isEmpty()){
                Prediction prediction = predictions.get(0);
                if(prediction.score >= 6){
                    if("zhangxx".equals(prediction.name)){
                        Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:1350505050"));
                        startActivity(intent);
                    }else if("close".equals(prediction.name)){
                        finish();//关闭Activity
                    }
                }else{
                    Toast.makeText(getApplicationContext(), R.string.low, 1).show();
                }
            }else{
                Toast.makeText(getApplicationContext(), R.string.notfind, 1).show();
            }
        }
        
        @Override
        protected void onDestroy() {
            super.onDestroy();
            android.os.Process.killProcess(android.os.Process.myPid());//关闭应用
        }
        
    }
  • 相关阅读:
    java垃圾回收机制
    浮点数比较/运算BigDecimal
    java8新特性_::双冒号
    java的lambda表达式
    【转】DelphiXE10.2.3——跨平台生成验证码图片
    ide fix pack for delph 10.2.3发布了
    使用ALVideoPlayerSurface制作视频播放器
    kbmMWLog同时输出日志到多个日志管理器
    kbmMWLog输出日志到控制台或指定Grid
    推荐内置android控件的开源项目alcinoe
  • 原文地址:https://www.cnblogs.com/heml/p/3516460.html
Copyright © 2011-2022 走看看