1、我使用 TextureView 绘制心电波形,当 TextureView 被一个 Dialog 遮住时,会导致波形的某几小段出现时有时无的闪动,dialog 取消后也闪动,除非波形被新数据覆盖;举个例子就是:小明手持一个大拖把,不断往前推,后面留下了他的脚印,但由于盖了一层保鲜膜,导致个别脚印时有时无,拿开保鲜膜后依然如此。
2、主要逻辑:通过 lockCanvas(dirty)锁定一块矩形区域,然后 canvas.drawLine(startX, startY, stopX, stopY, paint);
3、尝试解决方式:网上有解决 SurfaceView 闪动的方法,用一个 Canvas + Bitmap 解决这个问题,但是在 TextureView 中没用;我使用了 new Surface(TextureSurface)对象的方法绘制,且加了锁,稍微好了点,但依然存在闪动。
4、为什么用 TextureView:主要是因为有多个用户的波形要绘制,而且要放在 Fragment 中,还要改变 TextureView 的大小,操作比较多,完全是把 TextureView 当做普通 View 操作了,所以没选 SurfaceView。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.