OpenHarmony开源社区
直播中

ss

7年用户 8762经验值
擅长:电源/新能源 制造/封装 RF/无线
私信 关注
[问答]

SurfaceProvider子线程调用主线程进行绘制有延迟怎么解决?

SurfaceProvider子线程调用主线程进行绘制有延迟(绘制相关操作是放在onDraw()里面,  目前是停止绘制, 打断子线程,绘制停止会延后两秒左右)   
请问有什么更好的方式. (如果直接放在子线程绘制, 会没有显示.)

回帖(2)

ss

2022-3-23 10:36:09
用SurfaceProvider做一个曲线滚动的效果.  曲线滚动效果由两个SurfaceProvider完成(前一个是抽象的A,  后一个是继承自A的SurfaceProviderB)
Demo点击start启动曲线滚动(点击后,  会通过SurfaceProviderA启动 SurfaceProviderB中的子线程,  子线程的run()中的调用自身接口方法A1, 因而会启动SurfaceProviderA中的A1方法, SurfaceProviderA中的 A1()通过EventHandler调用参数,invalidate()更新A中的onDraw()绘制流程   );  Demo 点击stop停止曲线滚动.  会通过SurfaceProviderA中断SurfaceProviderB中正在运行的线程(Thread.interupt),  中断线程后,绘制流程会停止.  目前问题在于中断后曲线依然会运行1-3秒时间. (类似的Android项目中可以做到几乎同时停止(点击停止按钮后,曲线立即不再滚动))    有什么办法, 在点击stop后不再看到曲线滚动(实现和Android一样的停止绘制功能)

举报

ss

2022-3-23 10:36:37
模拟器和真机效果天差地别。转真机就没事了
举报

更多回帖

发帖
×
20
完善资料,
赚取积分