Android中的手势分割

前端之家收集整理的这篇文章主要介绍了Android中的手势分割前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在通过Android的手势进行手写字母检测的样本工作.当我一次输入1个字符时效果很好.这意味着当我通过手势在屏幕上写A时,程序会很好地识别它(因为我之前将它放在手势库上).截至目前我的代码是这样的.

  1. public void onGesturePerformed(GestureOverlayView overlay,Gesture gesture) {
  2. ArrayListscore > 1.0) {
  3. String letter = predictions.get(0).name;
  4. Toast.makeText(this,letter,Toast.LENGTH_SHORT).show();
  5. if(letter.contains("A")) //when matches i print it to edittext
  6. edittext.setText("A");
  7. .
  8. . //rest of stuff here like prevIoUs way
  9. .
  10. }
  11. }

但我的标准不是那样.我想认识一个字.我想一次写一个单词.

在为每次成功的比赛写一个单词时,应该在edittext上打印相应的字母.

  1. A,N,D,R,O,I,D

所以我的问题是如何才能获得它?是否可以分割手势(在写作时对单词进行分段)?任何工作代码示例或链接都将受到赞赏.

最佳答案
如果您将单词写成单独的字母(即不是草书),如问题中给出的图像所示.然后干脆就这样做 –

  1. public void onGesturePerformed(GestureOverlayView overlay,Gesture gesture) {
  2. ArrayListscore > 1.0) {
  3. edittext.setText(edittext.getText().toString() + letter);
  4. }
  5. }
  6. }

这实际上是将新字母附加到现有的edittext字符串.

但如果你在谈论草书写作,那就太复杂了.这是一些可以跟踪草书写作的代码.

  1. public class MainActivity extends Activity {
  2. private Handler mHandler;
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.main);
  7. }
  8. @Override
  9. protected void onResume() {
  10. super.onResume();
  11. Tracker t = new Tracker();
  12. t.start();
  13. }
  14. @Override
  15. protected void onPause() {
  16. if (mHandler != null)
  17. mHandler.getLooper().quit();
  18. super.onPause();
  19. }
  20. @Override
  21. public boolean onTouchEvent(MotionEvent event) {
  22. switch (event.getAction()) {
  23. case MotionEvent.ACTION_MOVE:
  24. if (mHandler != null) {
  25. Message msg = Message.obtain();
  26. msg.obj = event.getX() + "," + event.getY();
  27. mHandler.sendMessage(msg);
  28. }
  29. break;
  30. }
  31. return true;
  32. }
  33. private class Tracker extends Thread {
  34. private static final int LETTER_SIZE = 30;
  35. private GestureLibrary gLib;
  36. private ArrayListscore > 1.0) {
  37. Log.e("Found",letter);
  38. points.clear();
  39. }
  40. }
  41. }
  42. };
  43. Looper.loop();
  44. }
  45. }
  46. }

所以基本上我们捕捉触摸位置并从中创建一个Gesture,它传递给GestureLibrary的recogn()方法.如果识别出手势,则我们将其打印并清除触摸位置,以便可以识别新的字母.

示例项目:Cursive_eclipse_project.zip

猜你在找的Android相关文章