首页 > 其他 > 详细

手势

时间:2014-01-16 00:01:40      阅读:488      评论:0      收藏:0      [点我收藏+]

bubuko.com,布布扣

 

bubuko.com,布布扣

bubuko.com,布布扣

bubuko.com,布布扣
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());//关闭应用
    }
    
}
bubuko.com,布布扣

手势

原文:http://www.cnblogs.com/heml/p/3516460.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!