Android studio 如何在android studio中让画布跟随手指绘制平滑曲线

Android studio 如何在android studio中让画布跟随手指绘制平滑曲线,android-studio,canvas,path,curve,smoothing,Android Studio,Canvas,Path,Curve,Smoothing,我最初使用 onTouchEvent(运动事件){ .... float Xposition=event.getX(); ..... lineTo(Xpositon,Yposition);//只需从getX()和getY()获取当前指针位置 } 当你的手指在屏幕上快速移动时,会留下锋利的边缘。这里,concider的要点是,当您使用getX()和getY()时,在执行该命令时,它将只返回仪器上x位置的最合适值,在这两者之间会遗漏一些点(如果您想自己测试,请在手机中打开开发者选项,打开指针位置,并

我最初使用

onTouchEvent(运动事件){ .... float Xposition=event.getX(); ..... lineTo(Xpositon,Yposition);//只需从getX()和getY()获取当前指针位置 }

当你的手指在屏幕上快速移动时,会留下锋利的边缘。这里,concider的要点是,当您使用getX()和getY()时,在执行该命令时,它将只返回仪器上x位置的最合适值,在这两者之间会遗漏一些点(如果您想自己测试,请在手机中打开开发者选项,打开指针位置,并尝试在应用程序中用手指快速绘制,您可以清楚地看到指针位置显示为红色的许多点在绘制时不是应用程序使用的。)

解决方案: 假设现在时间是t1 当执行getX()时

下次执行getX()时,时间为t2

t1和t2之间缺少的点实际上存储在getHistoricalX(int,int)//要知道如何使用它,请参阅“批处理”部分下的内容,您可以找到它:

将其用于其余的点 表示首先获取t1的getX(),然后获取历史点,然后获取t2的getX()

这将主要解决问题。

onTouchEvent(MotionEvent事件){….float Xposition=event.getX();..path.lineTo(Xposition,Yposition);//只需从getX()和getY()获取当前指针位置即可}

当你的手指在屏幕上快速移动时,会留下锐利的边缘。这里要指出的是,当你使用getX()和getY()时,执行该命令时,它只会返回仪器上最合适的x位置值,在这两者之间会遗漏一些点(如果您想自己测试,请在手机中打开开发者选项,打开指针位置,并尝试在应用程序中用手指快速绘制,您可以清楚地看到指针位置显示为红色的许多点在绘制时不是应用程序使用的。)

解决方案:假设现在执行getX()时的时间是t1

下次执行getX()时,时间为t2

t1和t2之间缺少的点实际上存储在getHistoricalX(int,int)//要知道如何使用它,请参阅“批处理”部分下的内容,您可以找到它:

将其用于其余的点意味着首先获取t1的getX(),然后获取历史点,然后获取t2的getX()

这将主要解决问题