当前位置: 首页 > news >正文

在compose中的Canvas用kotlin显示多数据波形闪烁的问题

在compose中的Canvas显示多数据波形闪烁的问题:当在Canvas多组记录波形数组时,从第一组开始记录多次显示,如图,当再次回到第一次记录位置再显示时,波形出现闪烁。

原码如下:

data class DcWaveForm(var bDat: Boolean,var isOpenEar:Boolean,var count:Int,val dat: IntArray = IntArray(20) ,  //220var lPoints: Array<Offset> = List(140){Offset(0f,0f)}.toTypedArray(),var rPoints: Array<Offset> = List(140){Offset(0f,0f)}.toTypedArray()
) 

class MyViewModel : ViewModel() {var mWaveForm: Array<DcWaveForm> by mutableStateOf(Array(11) {DcWaveForm(bDat = false,isOpenEar = false,count = 0,dat = IntArray(20) { 0 },lPoints = List(140){Offset(0f,0f)}.toTypedArray(),rPoints = List(140){Offset(0f,0f)}.toTypedArray())})var mStartCount by mutableStateOf(0)private set// 安全访问方法fun getWaveFormData(index: Int): DcWaveForm? {return mWaveForm.getOrNull(index)}// 批量更新方法fun updateWaveArray(index: Int, block: DcWaveForm.() -> Unit) {mWaveForm = mWaveForm.apply {getOrNull(index)?.let { data ->this[index] = data.apply(block)}}}fun updateStartCount(count:Int){mStartCount = count}}val viewModel = MyViewModel()

pointsLeft和pointsRight前面已经定义过,以为一直用就可以了,其它不然。直接用会出现闪烁,要重新定义则正常,如下:

http://www.lqws.cn/news/114949.html

相关文章:

  • 中电金信:从智能应用到全栈AI,大模型如何重构金融业务价值链?
  • 数据结构第八章(一) 插入排序
  • 目标检测任务的评估指标P-R曲线
  • 【学习记录】如何使用 Python 提取 PDF 文件中的内容
  • 【C语言】通用统计数据结构及其更新函数(最值、变化量、总和、平均数、方差等)
  • 服务定位器模式在嵌入式系统中应用实现
  • 在虚拟宇宙中低语——进程间通信,Linux命名管道的前世今生
  • 【Linux】进程 信号保存 信号处理 OS用户态/内核态
  • 力扣面试150题--岛屿数量
  • 【位运算】丢失的数字(easy)
  • linux操作系统---网络协议
  • 【开源工具】基于PyQt5工作时长计算器工具开发全解析
  • Appium如何支持ios真机测试
  • 宝塔使用docker创建n8n
  • 如何在IDE中通过Spark操作Hive
  • Hive开窗函数的进阶SQL案例
  • 笔记 | docker构建失败
  • 【转bin】EXCEL数据转bin
  • 图神经网络实战——图属性度量方法详解
  • Electron打包前端和后端为exe
  • stress 服务器压力测试的工具学习
  • 无字母数字webshell的命令执行
  • xcode 各版本真机调试包下载
  • ShardingSphere-JDBC 与 Sharding-JDBC 的对比与区别
  • JVM——类加载的流程与机制
  • 【HarmonyOS Next之旅】DevEco Studio使用指南(三十)
  • 【映射】2024-睿抗-AcWing 5834. 谁进线下了?
  • 从OSI到TCP/IP:网络协议的演变与作用
  • 鸿蒙任务项设置案例实战
  • EasyRTC嵌入式音视频通信SDK音视频功能驱动视频业务多场景应用