Advertisement
Guest User

Untitled

a guest
Dec 30th, 2013
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. @Override
  2. public boolean onTouch(View arg0, MotionEvent event)
  3. {
  4. float x = event.getX();
  5. float y = event.getY();
  6.  
  7. switch (event.getAction())
  8. {
  9. case MotionEvent.ACTION_DOWN:
  10. {
  11. m_CurrentPoint = new PointF(event.getX(), event.getY());
  12. m_PreviousPoint = m_CurrentPoint;
  13. m_StartPoint = m_PreviousPoint;
  14.  
  15. m_DrawPath.reset();
  16. m_DrawPath.moveTo(x, y);
  17.  
  18. break;
  19. }
  20. case MotionEvent.ACTION_MOVE:
  21. {
  22. if (event.getPressure()>=0.00 && event.getPressure()<0.05)
  23. {
  24. m_VariableWidthDelta = 1;
  25. }
  26. else if (event.getPressure()>=0.05 && event.getPressure()<0.10)
  27. {
  28. m_VariableWidthDelta = 1;
  29. }
  30. else if (event.getPressure()>=0.10 && event.getPressure()<0.15)
  31. {
  32. m_VariableWidthDelta = 2;
  33. }
  34. else if (event.getPressure()>=0.15 && event.getPressure()<0.20)
  35. {
  36. m_VariableWidthDelta = 2;
  37. }
  38. else if (event.getPressure()>=0.20 && event.getPressure()<0.25)
  39. {
  40. m_VariableWidthDelta = 1;
  41. }
  42. else if (event.getPressure() >= 0.25 && event.getPressure()<0.30)
  43. {
  44. m_VariableWidthDelta = 1;
  45. }
  46. else if (event.getPressure() >= 0.30 && event.getPressure()<0.35)
  47. {
  48. m_VariableWidthDelta = 2;
  49. }
  50. else if (event.getPressure() >= 0.35 && event.getPressure()<0.40)
  51. {
  52. m_VariableWidthDelta = 2;
  53. }
  54. else if (event.getPressure() >= 0.40 && event.getPressure()<0.45)
  55. {
  56. m_VariableWidthDelta = 3;
  57. }
  58. else if (event.getPressure() >= 0.45 && event.getPressure()<0.50)
  59. {
  60. m_VariableWidthDelta = 4;
  61. }
  62.  
  63. m_Paint.setStrokeWidth(m_ThemeManagerInstance.getFolderStrokeWidth() + m_VariableWidthDelta);
  64.  
  65. m_DrawPath = new Path();
  66.  
  67. m_StartPoint = m_PreviousPoint;
  68. m_PreviousPoint = m_CurrentPoint;
  69. m_CurrentPoint = new PointF(event.getX(), event.getY());
  70.  
  71. PointF mid1 = midPoint(m_PreviousPoint, m_StartPoint);
  72. PointF mid2 = midPoint(m_CurrentPoint, m_PreviousPoint);
  73.  
  74. m_DrawPath.moveTo(mid1.x, mid1.y);
  75. m_DrawPath.quadTo(m_PreviousPoint.x, m_PreviousPoint.y, mid2.x, mid2.y);
  76. m_CanvasView.drawPath(m_DrawPath, m_Paint);
  77.  
  78. break;
  79. }
  80. case MotionEvent.ACTION_UP:
  81. {
  82. m_StartPoint = m_PreviousPoint;
  83. m_PreviousPoint = m_CurrentPoint;
  84. m_CurrentPoint = new PointF(event.getX(), event.getY());
  85.  
  86. break;
  87. }
  88. }
  89.  
  90. invalidate();
  91.  
  92. return true;
  93. }
  94.  
  95. private PointF midPoint(PointF p1, PointF p2)
  96. {
  97. return new PointF((p1.x + p2.x) / 2.0f , (p1.y + p2.y) * 0.5f);
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement