Hello,现在在做一个项目。当用户在画板上( View )画图时,需要通过捕获 onTouchEvent 的 ACTION_MOVE,来获取画笔移动的点的轨迹。
现在遇到的问题,这个事件触发的频率太低,导致获取的点不够多。想请问,有没有什么办法,可以提高这一事件的触发频率?
谢谢!
![]() | 1 Melodyer 2020-08-20 17:09:56 +08:00 ![]() |
2 gam2046 2020-08-20 17:22:36 +08:00 ![]() 触屏的采样率决定了上限,同样的程序,使用性能更好的设备,测试一下看。 |
3 wuketidai 2020-08-20 20:41:52 +08:00 感觉方向错了,应该设计算法让 Path 更加平滑上优化吧 |
![]() | 6 DeweyReed 2020-08-20 21:00:17 +08:00 ![]() |
7 wuketidai 2020-08-20 21:05:02 +08:00 |
8 Blanke 2020-08-21 09:24:34 +08:00 via Android 之前做过类似的应用,没遇到过这个问题 |
![]() | 9 krystal9527 2020-08-21 09:56:06 +08:00 ![]() @leven87 可以用贝塞尔曲线绘制运动轨迹,很好看,不会有毛刺 |
![]() | 10 krystal9527 2020-08-21 09:59:13 +08:00 |
11 leven87 OP @krystal9527 谢谢。不过贝塞尔曲线好像不能让我获取更多的点。我是要获取绘图轨迹上的点,越多越好,也就是说每调用 ACTION_MOVE 会记录一下坐标值( x,y )。 不过这个曲线很棒,我会加在我代码里。谢谢 |
![]() | 12 Cabana 2020-08-26 09:38:16 +08:00 ![]() 之前也做过画板的路过,MotionEvent.getHistoryXXXX()方法可解,触摸事件其实被采样的频率很高的,只是回调到上层时太高的频率对下游事件处理压力和帧率的考虑,做了类似"throttle"的处理,其余的事件可以通过 #6 楼官方文档的方式拿到。 |
14 leven87 OP |
![]() | 15 rangoBen 2020-08-31 11:35:04 +08:00 按照 16ms 的频率进行采样是不是就足够了。 |