Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public boolean onTouch(View arg0, MotionEvent event)
- {
- float x = event.getX();
- float y = event.getY();
- switch (event.getAction())
- {
- case MotionEvent.ACTION_DOWN:
- {
- m_CurrentPoint = new PointF(event.getX(), event.getY());
- m_PreviousPoint = m_CurrentPoint;
- m_StartPoint = m_PreviousPoint;
- m_DrawPath.reset();
- m_DrawPath.moveTo(x, y);
- break;
- }
- case MotionEvent.ACTION_MOVE:
- {
- if (event.getPressure()>=0.00 && event.getPressure()<0.05)
- {
- m_VariableWidthDelta = 1;
- }
- else if (event.getPressure()>=0.05 && event.getPressure()<0.10)
- {
- m_VariableWidthDelta = 1;
- }
- else if (event.getPressure()>=0.10 && event.getPressure()<0.15)
- {
- m_VariableWidthDelta = 2;
- }
- else if (event.getPressure()>=0.15 && event.getPressure()<0.20)
- {
- m_VariableWidthDelta = 2;
- }
- else if (event.getPressure()>=0.20 && event.getPressure()<0.25)
- {
- m_VariableWidthDelta = 1;
- }
- else if (event.getPressure() >= 0.25 && event.getPressure()<0.30)
- {
- m_VariableWidthDelta = 1;
- }
- else if (event.getPressure() >= 0.30 && event.getPressure()<0.35)
- {
- m_VariableWidthDelta = 2;
- }
- else if (event.getPressure() >= 0.35 && event.getPressure()<0.40)
- {
- m_VariableWidthDelta = 2;
- }
- else if (event.getPressure() >= 0.40 && event.getPressure()<0.45)
- {
- m_VariableWidthDelta = 3;
- }
- else if (event.getPressure() >= 0.45 && event.getPressure()<0.50)
- {
- m_VariableWidthDelta = 4;
- }
- m_Paint.setStrokeWidth(m_ThemeManagerInstance.getFolderStrokeWidth() + m_VariableWidthDelta);
- m_DrawPath = new Path();
- m_StartPoint = m_PreviousPoint;
- m_PreviousPoint = m_CurrentPoint;
- m_CurrentPoint = new PointF(event.getX(), event.getY());
- PointF mid1 = midPoint(m_PreviousPoint, m_StartPoint);
- PointF mid2 = midPoint(m_CurrentPoint, m_PreviousPoint);
- m_DrawPath.moveTo(mid1.x, mid1.y);
- m_DrawPath.quadTo(m_PreviousPoint.x, m_PreviousPoint.y, mid2.x, mid2.y);
- m_CanvasView.drawPath(m_DrawPath, m_Paint);
- break;
- }
- case MotionEvent.ACTION_UP:
- {
- m_StartPoint = m_PreviousPoint;
- m_PreviousPoint = m_CurrentPoint;
- m_CurrentPoint = new PointF(event.getX(), event.getY());
- break;
- }
- }
- invalidate();
- return true;
- }
- private PointF midPoint(PointF p1, PointF p2)
- {
- return new PointF((p1.x + p2.x) / 2.0f , (p1.y + p2.y) * 0.5f);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement