- 浏览: 277726 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
xianwubiao:
坑爹。。。。。
IOS之简单选择器UIPickerView(省份+城市) -
yanransysu:
为啥结果没有显示图片嘞,我都已经把你共享的文件给放进去了?
IOS之集合视图UICollectionView -
ajxjwha:
获取的总是空,为什么?!
IOS之简单选择器UIPickerView(省份+城市) -
如果宅:
附件下载下来是图片!
IOS之集合视图UICollectionView -
ikrboy:
小红星凯 写道找不到pickview 那个协议怎么搞?步骤写得 ...
IOS之简单选择器UIPickerView(省份+城市)
添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
MyGesture.java
private Gesture ges; private GestureLibrary lib; private GestureOverlayView overlay; private Button button01, button02 , button03; private EditText et; private String gesPath; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.my_gesture); /* 查看SDCard是否存在 */ if (!Environment.MEDIA_MOUNTED.equals(Environment .getExternalStorageState())) { /* SD卡不存在,显示Toast信息 */ toast("SD卡不存在!程序无法运行"); } /* 以findViewById()取得对象 */ et = (EditText) this.findViewById(R.id.myEditText1); button01 = (Button) this.findViewById(R.id.myButton1); button02 = (Button) this.findViewById(R.id.myButton2); button03 = (Button) this.findViewById(R.id.myButton3); overlay = (GestureOverlayView) findViewById(R.id.myGestures1); /* 取得GestureLibrary的文件路径 */ gesPath = new File(Environment.getExternalStorageDirectory(), "gestures").getAbsolutePath(); /* 设置EditText的OnKeyListener */ et.setOnKeyListener(new EditText.OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { /* 名称与手写都已设置时将新增的Button enable */ if (ges != null && et.getText().length() != 0) { button01.setEnabled(true); } else { button01.setEnabled(false); } return false; } }); /* 设定Overlay的OnGestureListener */ overlay.addOnGestureListener(new GestureOverlayView.OnGestureListener() { public void onGesture(GestureOverlayView overlay, MotionEvent event) { } /* 开始画手势时将新增的Button disable,并清除Gesture */ public void onGestureStarted(GestureOverlayView overlay, MotionEvent event) { button01.setEnabled(false); ges = null; } /* 手势画完时判断名称与手写是否完整建立 */ public void onGestureEnded(GestureOverlayView overlay, MotionEvent event) { ges = overlay.getGesture(); if (ges != null && et.getText().length() != 0) { button01.setEnabled(true); } } public void onGestureCancelled(GestureOverlayView overlay, MotionEvent event) { } }); /* 设定button01的OnClickListener */ button01.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { final String gesName = et.getText().toString(); try { File file = new File(gesPath); lib = GestureLibraries.fromFile(gesPath); if (!file.exists()) { /* 文件不存在就直接写入 */ lib.addGesture(gesName, ges); if (lib.save()) { /* 将设定画面数据清除 */ et.setText(""); button01.setEnabled(false); overlay.clear(true); /* 保存成功,显示Toast信息 */ toast("保存成功,保存路径为:" + gesPath); } else { /* 保存失败,显示Toast信息 */ toast("保存失败"); } } else { /* 文件存在时因读取保存的Gesture */ if (!lib.load()) { /* Library读取失败,显示Toast讯息 */ toast("Library读取失败"); } else { /* 如果Library中存在相同名称,则因将其移除再写入 */ final Set<String> en = lib.getGestureEntries(); if (en.contains(gesName)) { new AlertDialog.Builder(MyGesture.this) .setTitle("提醒") .setMessage("文件已存在,确定要覆盖吗?") .setNegativeButton("取消", null) .setPositiveButton( "确定", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialoginterface, int i) { ArrayList<Gesture> al = lib .getGestures(gesName); for (int t = 0; t < al .size(); t++) { lib.removeGesture( gesName, al.get(t)); } lib.addGesture(gesName, ges); if (lib.save()) { /* 将设定画面数据清除 */ et.setText(""); button01.setEnabled(false); overlay.clear(true); /* 保存成功,显示Toast信息 */ toast("保存成功,保存路径为:" + gesPath); } else { /* 保存失败,显示Toast信息 */ toast("保存失败"); } } }).show(); } else { lib.addGesture(gesName, ges); if (lib.save()) { /* 将设定画面数据清除 */ et.setText(""); button01.setEnabled(false); overlay.clear(true); /* 保存成功,显示Toast信息 */ toast("保存成功,保存路径为:" + gesPath); } else { /* 保存失败,显示Toast信息 */ toast("保存失败"); } } } } } catch (Exception e) { e.printStackTrace(); } } }); /* 设置button02的OnClickListener */ button02.setOnClickListener(new Button.OnClickListener() { public void onClick(View v) { et.setText(""); button01.setEnabled(false); overlay.clear(true); } }); button03.setOnClickListener(new OnClickListener(){ public void onClick(View v) { Intent intent = new Intent(MyGesture.this , ReadGesture.class); startActivity(intent); } }); } public void toast(String str) { Toast.makeText(MyGesture.this, str, Toast.LENGTH_LONG).show(); }
ReadGesture.java
private SimpleAdapter listItemAdapter; // ListView的适配器 private ArrayList<HashMap<String, Object>> listItem; // ListView的数据源,这里是一个HashMap的列表 private ListView myList; // ListView控件 private List<Gesture> gesList; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.phone_info); listItem = new ArrayList<HashMap<String, Object>>(); listItemAdapter = new SimpleAdapter(this, listItem, R.layout.list_item3, new String[] { "image", "text" }, new int[] { R.id.imageView1, R.id.textView1 }); myList = (ListView) findViewById(R.id.listView1); myList.setAdapter(listItemAdapter); gesList = new ArrayList<Gesture>(); try{ String gesPath = new File(Environment.getExternalStorageDirectory(), "gestures").getAbsolutePath(); File gesFile = new File(gesPath); GestureLibrary lib = GestureLibraries.fromFile(gesFile); if(gesFile.exists()){ if(!lib.load()){ toast("读取Library失败"); } else{ Object[] entries = lib.getGestureEntries().toArray(); for(int i = 0 ; i < entries.length ; i++){ ArrayList<Gesture> gestureArray = lib.getGestures(entries[i].toString()); for(int j = 0; j < gestureArray.size() ; j++){ String gestureName = entries[i].toString(); addItem(R.drawable.doc,gestureName); Gesture gesture = (Gesture)gestureArray.get(j); gesList.add(gesture); } } } } }catch(Exception e){ e.printStackTrace(); } myList.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { Bitmap bitmap = gesList.get(arg2).toBitmap(64, 64, 12, Color.BLUE); ImageView gesImage = new ImageView(ReadGesture.this); gesImage.setImageBitmap(bitmap); new AlertDialog.Builder(ReadGesture.this) .setTitle("查看Gesture") .setView(gesImage) .setPositiveButton("确定", new DialogInterface.OnClickListener() { public void onClick( DialogInterface dialoginterface, int i) { dialoginterface.cancel(); } }).show(); } }); } private void addItem(int image, String str) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("image", image); map.put("text", str); listItem.add(map); listItemAdapter.notifyDataSetChanged(); } public void toast(String str) { Toast.makeText(ReadGesture.this, str, Toast.LENGTH_LONG).show(); }
发表评论
-
Gesture获取屏幕手写事件并显示相应信息
2012-03-13 16:53 1375private GestureLibrary ge ... -
SensorManager判断手机指向方向
2012-03-13 16:29 2881public class GetPosition ext ... -
BroadcastReceiver开机便运行的程序
2012-03-13 11:29 1123public class BeginFromBoo ... -
Service将广播信息传递给
2012-03-12 21:06 1392BroadcastReceiver捕捉到信息后关闭服务 ... -
BroadcastReceiver监听短信发送的状态
2012-03-12 20:22 4603添加权限 <uses-permission ... -
BroadcastReceiver一个星期每天更换不同的壁纸
2012-03-12 12:22 1427添加权限 <uses-permission ... -
SensorEventListener手机翻背静音震动
2012-03-12 12:23 1458添加震动权限 <uses-permission ... -
AudioManager黑名单来电自动静音
2012-03-12 12:23 2404添加权限 <uses-permission ... -
AlarmManager可定时响起的闹钟
2012-03-11 13:22 1782三部分 1.MyClock.java(设置界面) 2.Ca ... -
PhoneState查看拨号器状态及显示联系人信息
2012-03-11 10:33 1207添加权限 <uses-perm ... -
Service与Runnable开始与停止系统服务
2012-03-11 10:33 3334两部分ControlService.java(Ac ... -
查看Battery剩余电量
2012-03-10 14:06 996private int intLevel; p ... -
BroadcastReceiver实时短信提醒
2012-03-10 13:31 1048添加权限 <uses-permission ... -
TelephonyManager获取电信网络和手机信息
2012-03-10 00:34 1707添加权限 <uses-permission ... -
任务管理器查看正在运行的程序和服务
2012-03-09 10:15 1252添加权限 <uses-perm ... -
SIM获取手机SIM卡的信息
2012-03-09 09:49 1333添加权限: <uses-permission ... -
Wallpaper获取当前、修改和还原自带壁纸
2012-03-09 09:50 2733添加权限: <uses-permission ... -
ContactsContract获取联系人信息及双向查找联系人信息
2012-03-08 12:24 2528添加权限: <uses-permission ... -
Vibrator结合ToggleButton控件的震动提示
2012-03-08 12:24 1169添加权限: <uses-permission ... -
通过Gmail发送邮件
2012-03-07 14:37 986private EditText mEditTex ...
相关推荐
GESTURE
创建一个名为RICK的手写符号ry,在日后的项目开发中,便可依据此范例作为开发模板,创建、保存手写笔画图案。
smooth gesture for chrome. chrome的插件
Kinect+Gesture+recognition Kinect+Gesture+recognition
js touch触屏gesture手势demo
gesture的识别和自定义gesture
Paper on gesture recognition
Gesture Driven Fuzzy Interface System for Car Racing Game....Pages 117-134 Type-2 Fuzzy Classifier Based Pathological Disorder Recognition....Pages 135-194 Probabilistic Neural Network Based Dance ...
Android Gesture Builder
gesture-detector java source code
hand gesture recognition
UnityVR手势识别插件VR Infinite Gesture1.1.3HTCVIVE
Android Gesture 手势 的识别,本程序只识别已经添加的0-9的数字
Android Gesture Detectors Framework Introduction Since I was amazed Android has a ScaleGestureDetector since API level 8 but (still) no such thing as a RotateGestureDetector I decided to create this ...
SmartGesture,驱动工具。华硕触摸板使用的SmartGesture,驱动工具。华硕触摸板使用的
hand gesture recognition system
VR Infinite Gesture——最新的版本,assetsore上可以买到的,现在买了免费送给大家
Hand Gesture Recognition
对应博客的例子,ViewFlipper和Gesture的使用(一)
这是在android gesturebuilder基础上开发的一个小小创意,通过将一个手势和电话簿中的联系人关联 打电话发短信不用翻电话簿 直接一个手势 就搞定 这个程序在删除手势后可能会引起关联错误 有兴趣的朋友可以在源码上...