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