System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及智能终端,尤其涉及一种显示方法、电子设备及存储介质。
技术介绍
1、随着笔记应用功能越来越强大,笔记应用的使用体验也越来越丰富。例如,用户可以在笔记应用的文本笔记中键入文本,粘贴已复制到剪贴板中的内容,添加超链接,添加图片,添加音频等,还可以通过手写方式输入文字、图形等内容。
技术实现思路
1、本申请提供一种显示方法、电子设备及存储介质。在该方法中,用户拖动笔记应用界面中画布边界线调整画布高度时,画布边界线的更新不依赖于画布高度的更新,以此提升了画布边界线位置变化时的跟手性。
2、第一方面,本申请实施例提供一种显示方法。该方法包括:
3、电子设备显示目标应用的第一界面,第一界面是基于第一视图和第二视图显示的,第一视图和手写画布的目标边界线对应,第二视图和画布对应,第二视图是透明的;目标边界线为顶部边界线或底部边界线;电子设备响应于拖动目标边界线时手指位置从第一位置滑动到第二位置,对第一视图进行更新;电子设备在对第一视图进行更新之后,显示目标应用的第二界面;在第二界面中,目标边界线被显示在第二位置;电子设备对第一视图进行更新之后,根据第一视图的更新结果对第二视图的高度进行更新。
4、示例性的,目标应用可以是笔记应用,第一界面可以是笔记应用的编辑界面,编辑界面中包括手写区域(也称画布)。其中,第一界面可以包括第一视图和第二视图,第一视图用于显示画布边界线,第二视图用于显示画布。
5、其中,对第一视图进行更新,可以理解为更新第一视
6、这样,由于画布在显示界面中是透明不可见的,用户在显示界面中直观看到的是画布边界线,将两者解耦后,画布边界线的更新就不再依赖于画布高度的更新,使得在用户快速拖动画布边界线时,画布边界线也能够流畅地跟随手指滑动,且画布边界线能够滑动停留在手写笔迹的边界位置处。
7、根据第一方面,电子设备对第一视图进行更新,包括:电子设备通过目标应用的子线程对第一视图进行更新。
8、示例性的,子线程可以是目标应用javascript端的线程。这样,画布边界线的更新就不再由任务繁重的目标应用主线程处理,提升了对用户拖动边界线的响应速度。
9、根据第一方面,或者以上第一方面的任意一种实现方式,电子设备根据第一视图的更新结果更新第二视图的高度,包括:通过目标应用的主线程,根据第一视图的更新结果对第二视图的高度进行更新。
10、其中,主线程可以是目标应用安卓端的主线程。
11、这样,将画布边界线和画布进行解耦,画布边界线的更新被笔记应用的js(javascript)端线程控制处理,画布的更新被笔记应用的安卓(android)端线程控制处理。
12、根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:在目标边界线被拖动的过程中,通过目标应用的子线程依次生成多个画布更新任务,并将多个画布更新任务按顺序添加至任务队列中;通过目标应用的主线程,在任务队列中获取画布更新任务,并根据画布更新任务对第二视图的高度进行更新。
13、在用户拖动画布边界线的过程中,笔记应用的子线程不断生产画布高度更新任务。若每个画布高度更新任务都直接传递给主线程进行处理,会导致主线程任务繁忙。而且,画布高度更新任务的生产速度大于消费速度,可能会导致任务阻塞,也增加了任务丢失的概率。为此,在笔记应用的新增任务队列。笔记应用的子线程生产画布高度更新任务后,将画布高度更新任务放入任务队列中。主线程作为任务队列的消费者,在任务队列中读取画布高度更新任务并执行画布高度更新任务。
14、根据第一方面,或者以上第一方面的任意一种实现方式,目标应用的主线程在任务队列中获取画布更新任务,并根据画布更新任务对第二视图的高度进行更新,包括:
15、目标应用的主线程每次在任务队列中获取多个画布更新任务,并根据这多个画布更新任务中的最后一个画布更新任务对第二视图的高度进行更新。
16、这样,当画布更新任务需要频繁且连续地执行,同时画布更新任务耗时较长时,依次执行这些画布更新任务会影响其他ui的更新操作。主线程通过判断旧的画布更新任务是否在等待执行,是则可以将其移除,优先执行新的画布更新任务,从而提高主线程的利用效率,增强系统对用户操作的响应速度。
17、根据第一方面,或者以上第一方面的任意一种实现方式,该方法还包括:
18、电子设备响应于停止拖动目标边界线并抬手的操作,通过目标应用的子线程根据抬手位置对第一视图进行更新,生成目标画布更新任务;电子设备通过目标应用的子线程将目标画布更新任务传递给目标应用的主线程;电子设备通过目标应用的主线程执行目标画布更新任务。
19、这样,在用户抬手时,子线程根据手指抬起的位置更新画布边界线视图,主线程也能根据最新生成的画布高度更新任务对画布视图高度进行更新,使得画布边界线的位置变化以及画布高度更加符合用户预期。
20、根据第一方面,或者以上第一方面的任意一种实现方式,电子设备通过目标应用的子线程根据抬手位置对第一视图进行更新,包括:目标应用的子线程根据手指的当前位置,计算第一视图的偏移量;目标应用的子线程根据第一视图的偏移限制,对第一视图的偏移量进行校准;目标应用的子线程根据校准后的第一视图的偏移量,对第一视图进行更新。
21、本实施例对于基于手指采样位置计算得到的画布边界线偏移量,进行了校准处理,以避免出现画布边界线偏移超出限制的问题,也能避免出现用户无法准确拖动画布边界线到手写笔迹最低点或最高点位置处的问题。
22、根据第一方面,或者以上第一方面的任意一种实现方式,目标边界线为底部边界线;第二位置高于第一位置;对应的,目标应用的子线程根据第一视图的偏移限制,对第一视图的偏移量进行校准,包括:
23、目标应用的子线程计算第一视图的偏移量与第二视图的当前高度的累加和;目标应用的子线程确定累加和小于第二视图的最小高度值;最小高度值为第二视图的当前高度与第一高度值的差值,第一高度值为目标边界线的位置与第三位置的差值;第三位置为允许画布底部边界线偏移到的下限位置;目标应用的子线程根据第一位置,重新计算第一视图的偏移量,作为校准后的第一视图的偏移量。
24、这样,在拖动画布底部边界线上滑的场景中,能够避免画布底部边界线停留位置超过手写笔迹最低点的情况。
25、根据第一方面,或者以上第一方面的任意一种实现方式,第三位置为画布上手写轨迹的最低点位置;或者,第三位置为第四位置,第四位置位于最低点位置之下,且第四位置与最低点位置的差值小于预设阈值。
26、这样能够能避免由于笔迹过粗而导致笔迹最低点被遮盖的问题。
27、根据第一方面,或者以上第一方面的任意一种实现方式,目标边界线为底部边界线;第二位置低于第一位置;对应的,目标应用的子线程根据第一视图的偏移限制,对第一视图的偏移量进行校准,包括:目标本文档来自技高网...
【技术保护点】
1.一种显示方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,对所述第一视图进行更新,包括:
3.根据权利要求1或2所述的方法,其特征在于,根据所述第一视图的更新结果更新所述第二视图的高度,包括:
4.根据权利要求3所述的方法,其特征在于,还包括:
5.根据权利要求4所述的方法,其特征在于,在任务队列中获取画布更新任务,并根据所述画布更新任务对所述第二视图的高度进行更新,包括:
6.根据权利要求4所述的方法,其特征在于,还包括:
7.根据权利要求1所述的方法,其特征在于,对所述第一视图进行更新,包括:
8.根据权利要求7所述的方法,其特征在于,所述目标边界线为所述底部边界线;所述第二位置高于所述第一位置;
9.根据权利要求8所述的方法,其特征在于,所述第三位置为所述画布上手写轨迹的最低点位置;
10.根据权利要求7所述的方法,其特征在于,所述目标边界线为所述底部边界线;所述第二位置低于所述第一位置;
11.一种电子设备,其特征在于,包括:
>12.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-10中任一项所述的显示方法。
...【技术特征摘要】
1.一种显示方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,对所述第一视图进行更新,包括:
3.根据权利要求1或2所述的方法,其特征在于,根据所述第一视图的更新结果更新所述第二视图的高度,包括:
4.根据权利要求3所述的方法,其特征在于,还包括:
5.根据权利要求4所述的方法,其特征在于,在任务队列中获取画布更新任务,并根据所述画布更新任务对所述第二视图的高度进行更新,包括:
6.根据权利要求4所述的方法,其特征在于,还包括:
7.根据权利要求1所述的方法,其特征在于,对所述第一视图...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。