android 编程之 手势识别
2014-05-04 11:11
288 查看
用于话手势的控件是 <android.gesture.GestureOverlayView android:gestureStrokeType="multiple"//允许多笔手势 />
1.定义一个手势工厂 存放手势图案
private GestureLibrary gestureLibrary=GestureLibraries.fromRawResource(this, R.raw.gestures);
2.加载手势工厂
gestureLibrary.load();
3.然后监听手势控件上的手势
(gesture).addOnGesturePerformedListener(new GestureListener());//监听手势 这个只监听单笔手势new GestureListener回调函数 定义如下
public void onGesturePerformed(GestureOverlayView arg0, Gesture arg1)
{//第一个参数就是这里定义的接受手势的控件 第二个参数是手势画完了后的图案
// TODO Auto-generated method stub
ArrayList<Prediction> predictions = gestureLibrary.recognize(arg1);//看画出来的手势图案是否和手势工厂里存放的手势图案一样 返回ArrayList<Prediction>
Log.i("Tag","1");
if(predictions!=null)
{//不为空 则证明有手势图案
Log.i("Tag","2");
Prediction prediction = predictions.get(0);//取得栈顶的第一个最匹配的手势
if(prediction.score>=5)
{//判断手势的匹配度
Log.i("Tag","3");
Log.i("Tag",prediction.name);
if("call".equals(prediction.name))
{//判断是哪一种手势
Log.i("Tag","4");
Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:5556"));
startActivity(intent);
}
else if("out".equals(prediction.name))
{
finish();//不是关闭应用 只是关闭activity
}
}
else
{
Toast.makeText(getApplicationContext(), "匹配度不够", 2).show();
}
}
else
{
Toast.makeText(getApplicationContext(), "没有匹配记录", 2).show();
}
}
1.定义一个手势工厂 存放手势图案
private GestureLibrary gestureLibrary=GestureLibraries.fromRawResource(this, R.raw.gestures);
2.加载手势工厂
gestureLibrary.load();
3.然后监听手势控件上的手势
(gesture).addOnGesturePerformedListener(new GestureListener());//监听手势 这个只监听单笔手势new GestureListener回调函数 定义如下
public void onGesturePerformed(GestureOverlayView arg0, Gesture arg1)
{//第一个参数就是这里定义的接受手势的控件 第二个参数是手势画完了后的图案
// TODO Auto-generated method stub
ArrayList<Prediction> predictions = gestureLibrary.recognize(arg1);//看画出来的手势图案是否和手势工厂里存放的手势图案一样 返回ArrayList<Prediction>
Log.i("Tag","1");
if(predictions!=null)
{//不为空 则证明有手势图案
Log.i("Tag","2");
Prediction prediction = predictions.get(0);//取得栈顶的第一个最匹配的手势
if(prediction.score>=5)
{//判断手势的匹配度
Log.i("Tag","3");
Log.i("Tag",prediction.name);
if("call".equals(prediction.name))
{//判断是哪一种手势
Log.i("Tag","4");
Intent intent=new Intent(Intent.ACTION_CALL,Uri.parse("tel:5556"));
startActivity(intent);
}
else if("out".equals(prediction.name))
{
finish();//不是关闭应用 只是关闭activity
}
}
else
{
Toast.makeText(getApplicationContext(), "匹配度不够", 2).show();
}
}
else
{
Toast.makeText(getApplicationContext(), "没有匹配记录", 2).show();
}
}
相关文章推荐
- android Edittext
- android开源工程--开篇
- Android 手动显示和隐藏软键盘
- Android上实现H.264解码器(一)——开发环境搭建篇NDK等
- Android 调用系统相机拍照保存以及调用系统相册的方法
- android 启动一个activity
- android开发之-Android 开发之4.0界面设计原则-整理
- android 开源项目学习<二>
- android开源项目汇总
- 关于android Project运行中出错Error executing aapt: Return code -1073741819
- android快速开发框架
- android 将未签名的APK 包 , 转成签名的 (学习)
- android 单元测试
- android 中theme.xml与style.xml的区别
- Android使用ant对项目进行编译签名优化打包
- 在Android中修改快捷方式的图标
- Android中asset文件夹和raw文件夹区别
- Android 应用启动动画代码
- 发布
- 爱加密