SurfaceProvider绘制延迟

SurfaceProvider  子线程调用主线程进行绘制有延迟(绘制相关操作是放在onDraw()里面,  目前是停止绘制, 打断子线程,绘制停止会延后两秒左右)   

请问有什么更好的方式. (如果直接放在子线程绘制, 会没有显示.) 

HarmonyOS, 线程
2021-03-08 11:37:11
浏览
已于2021-3-8 12:00:55修改
1
收藏 0
回答 4
已解决
回答 4
按赞同
/
按时间
阿拉灯婶丁

停止绘制 打断子进程 是个什么概念?绘画停止延后2秒是什么意思?

也详细描述该场景?

分享
微博
QQ
微信
回复
2021-03-08 18:20:13
Applepotato

用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一样的停止绘制功能)

已于2021-3-8 19:19:53修改
分享
微博
QQ
微信
回复
2021-03-08 19:10:56
白鹿白鹿

太可怕了,模拟器和真机效果天差地别。转真机就没事了,华为加油

分享
微博
QQ
微信
回复2
2021-03-09 22:40:39
三石SOFT

有没有鸿蒙画3d图的例子,源码

分享
微博
QQ
微信
回复
2021-06-05 20:19:41
相关问题
harmony surfaceProvider绘制不显示问题
8150浏览 • 4回复 待解决
延迟任务什么时候会执行
300浏览 • 1回复 待解决
如何确认延迟任务是否申请成功
290浏览 • 1回复 待解决
延迟任务执行时机及运行线程
423浏览 • 1回复 待解决
鸿蒙如何实现位图绘制
7933浏览 • 1回复 待解决
Canvas绘制内容如何动态更新
88浏览 • 1回复 待解决
使用Drawing实现图形绘制与显示
141浏览 • 1回复 待解决
XComponent、NativeDrawing实现2D图形绘制
136浏览 • 1回复 待解决
独立的指定帧率来运行UI绘制
127浏览 • 1回复 待解决
Polyline组件绘制坐标不准确
357浏览 • 1回复 待解决
通过Native 调用c++层实现文本绘制
119浏览 • 1回复 待解决
DevEco Stduio如何绘制折线图
2695浏览 • 1回复 待解决
使用Drawing进行2d图像绘制
126浏览 • 1回复 待解决
图片进行画笔或者马赛克绘制
65浏览 • 1回复 待解决
绘制手动生成线条的坐标系
34浏览 • 1回复 待解决
XComponent、openGL实现3D图形绘制
130浏览 • 1回复 待解决
Canvas如何绘制app.media下面的图片?
530浏览 • 1回复 待解决
使用Native、XComponent和EGL绘制图形
168浏览 • 1回复 待解决