工作需要,对这方面做了一些了解
一般的手写对android canvas有点理解的应该都知道,只需要单纯的使用drawPath就可以在view上画画。
而手写笔的关键则是要让path的strokeWidth发生变化
这个令人头大了, 毕竟setPaint只能够设置一个paint,一旦改变paint的参数,整个path都会发生改变。
所以,我们只能够另辟蹊径。
我们可以先开一个arraylist(Point),用来记录我们在surfaceview(推荐在画画功能上使用surfaceview代替view,毕竟可以减轻ui线程的压力)上划过的坐标
Point tmpPoint = new Point();
tmpPoint.set((int) event.getX(), (int) event.getY());
pointStack.add(tmpPoint);大家想想手写笔变化的因素是什么,是速度!
所以,我们必须将我们划过屏幕的速度记录下来,并且!这个速度是要与我们的坐标点arraylist一一对应的,这样子我们才可以在之后画出我们想要的字。
android 为我们提供了 VelocityTracker 用来记录速度
我们只需要在滑动的时候调用VelocityTracker对象就可以记录下我们的速度
case MotionEvent.ACTION_DOWN:
if (mVelocityTracker == null) {
// Retrieve a new VelocityTracker object to watch the velocity
// of a motion.
mVel