一种智能终端实现自适应笔记的方法、存储介质及电子设备技术

技术编号:29399513 阅读:15 留言:0更新日期:2021-07-23 22:36
本发明专利技术公开了一种智能终端实现自适应笔记的方法,通过获取各个文字在整个文章完整显示时的绝对位置区域,在显示笔记图片时先根据偏移位置寻找锚点文字,再寻找对应的笔记图片,按照相对偏移量确定笔记图片的显示位置。利用本发明专利技术,能够做到即使文章显示区域改变了或者文章字体大小改变了,照样可以实现笔记图片与对应文字的同步跟随效果。

【技术实现步骤摘要】
一种智能终端实现自适应笔记的方法、存储介质及电子设备
本专利技术涉及智能终端
,具体涉及一种智能终端实现自适应笔记的方法、存储介质及电子设备。
技术介绍
在使用智能终端(尤其是手机和平板)通过应用程序看文章时,有时想采用像纸质书本一样的方式直接在文章里面做笔记(画线或者书写文字等等),即笔记与文章中的文字是同步的。当当滑动屏幕滚动文章时,笔记也跟随文字一起滚动。中国专利申请ZL201511016766X针对文章跟随的笔记功能提供了实现方法,但是此方法实现的笔记只适合在某一种终端上按照固定字体大小显示,如果文章在不同分辨率的智能终端上显示或者在同一终端上字体大小改变了,文章排版必然会变化,这样的话笔记跟文章就无法对应上了。
技术实现思路
针对现有技术的不足,本专利技术旨在提供一种智能终端实现自适应笔记的方法、存储介质及电子设备。为了实现上述目的,本专利技术采用如下技术方案:一种智能终端实现自适应笔记的方法,具体过程为:笔记视图分为下层的文章视图和上层的笔记视图;文章视图可以上下滚动,定义为ArticleView,并且定义文章视图的大小为在逻辑上将文章全部显示出来后的整个视图大小;用户能看得到文章内容的区域定义为文章显示区域,文章显示区域位置始终是不变的,当上下划屏滚动时实际上是文章视图在上下滚动,文章视图会实时把处于文章显示区域位置内的文章内容展现出来;笔记视图定义为NoteView,ArticleView在上下滚动过程中,可通过调用NoteView的回调函数把当前的滚动位置实时传递给NoteView,ArticleView当前的滚动位置定义为ArticleView.offsetY;ArticleView在加载一篇文章内容时,首先遍历整篇文章的字符数组,根据文章显示区域、排版信息、每个字符的显示宽度和高度以及图片的宽高计算逻辑上完整显示整篇文章后的总长度,并将长度设置为ArticleView的长度;在整个遍历过程中同时会保存文章中各个文字在ArticleView中的绝对位置区域Rect(top,bottom,left,right),即Rect值,并将所有文字的Rect值构成的数组命名为charsRectBuf;把charsRectBuf传递给NoteView;文字是指去掉文章字符数组中所有标签后剩下的文字和图片占位符,图片占位符是指把一张图片看作是一个特殊的文字;绝对位置区域是指ArticleView逻辑上完整显示整个文章时每个文字在ArticleView中的显示区域;Rect(top,bottom,left,right)中,left和top分别表示绝对位置区域的左上角横坐标和纵坐标,right和bottom分别表示绝对位置区域的右下角横坐标和纵坐标;当用户做笔记的时候,实质是拖动画笔在NoteView上画线、写字等等,NoteView在展示用户所画内容的同时记录下每次画笔对应的down、move、up触摸消息的坐标值,当收到up消息时表示画笔已经抬起,完成一个笔记,这时将已经记录本次画笔的down、move、up的坐标值加上ArticleView.offsetY,得到此次的笔记显示区域的Rect值,该显示区域是能够包括此次画笔操作所包含的down、move、up消息所有坐标值的最小矩形;当用户再次拿起画笔做笔记又会得到另一个笔记显示区域Rect值;保存笔记时,NoteView查找锚点文字并计算相对位置偏移量:遍历charsRectBuf,确定每个笔记显示区域左上角坐标(Rect.left,Rect.top)对应的锚点文字以及与该锚点文字的绝对位置区域左上角坐标的相对偏移量(offsetX,offsetY)并记录;根据所有的笔记显示区域从NoteView画布的bitmap中剪出笔记图片并转化成png图片字节流;将保存笔记到数据库,数据库中各项笔记的数据项包括锚点文字的index值、笔记的png图片字节流、offsetX、offsetY、字体大小;其中,所述锚点文字的index值,是指锚点文字在charsRectBuf中的偏移位置,字体大小指的是文章当前显示采用的字体大小;当ArticleView上下滚动时,NoteView会实时收到ArticleView.offsetY,NoteView结合文章显示区域和ArticleView.offsetY,通过遍历所有charsRectBuf,得到文章显示区域当前显示的所有文字的index值,根据这些index值从数据库中查找相关的笔记的数据项,读取笔记的png图片字节流并显示出来;笔记的png图片在NoteView上的显示位置为(charsRectBuf[index].left+offsetX*f,charsRectBuf[index].top+offsetY*f-ArticleView.offsetY),其中的f为字体大小变化系数,即当前文章采用字体大小除以数据库保存的字体大小,当f不为1.0时,将笔记png图片按照字体大小变化系数进行缩放后再显示,以达到与字体大小协调一直到目的;charsRectBuf[index].left表示charsRectBuf中第index个文字在ArticleView中显示的左上角坐标的横坐标值,charsRectBuf[index].top:表示第index个文字在ArticleView中显示的左上角坐标的纵坐标值。进一步地,保存笔记前,NoteView完成两方面优化流程:1)合并小的笔记显示区域:遍历所有笔记显示区域,两两比较看有无重叠,如有重叠再判断是否要合并,合并的条件是合并之后得到的笔记显示区域面积小于合并前两个笔记显示区域面积之和,如果判断出要合并,将两个笔记的显示区域合并得到一个笔记区域,并丢弃原有的两个笔记的显示区域;2)分割大的笔记显示区域:按照设定阈值把面积超过设定阈值的笔记显示区域分割成若干笔记显示区域,并丢弃原有的大的笔记显示区域。进一步地,每个笔记png图片在显示时会得到一个笔记显示区域,由于文章显示区域或者字体大小的变化,如果笔记png图片在新的位置上显示超出NoteView画布,把原笔记png图片分割成若干笔记png图片显示,原先的笔记显示区域就分割成若干新的笔记显示区域,原有的笔记显示区域丢弃掉;然后将这若干新的笔记显示区域写到数据库保存,同步删掉分割前的旧的笔记数据项。进一步地,在浏览笔记时,当用户对原有的笔记进行修改,由于前面已经有了笔记显示区域,修改后按保存笔记到数据库的流程保存即可;从数据库中加载的原有的笔记显示区域被覆盖后,新的笔记数据项在被保存到数据库前要先删除掉数据库中对应的原有的笔记数据项。一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述方法。一种电子设备,包括处理器和存储器,所述存储器用于存储计算机程序;所述处理器用于执行所述计算机程序时,实现上述方法。本专利技术的有益效果在于:利用本专利技术,能够做到即使文章显示区域改变了或者文章字体大小改变本文档来自技高网...

【技术保护点】
1.一种智能终端实现自适应笔记的方法,其特征在于,具体过程为:/n笔记视图分为下层的文章视图和上层的笔记视图;文章视图可以上下滚动,定义为ArticleView,并且定义文章视图的大小为在逻辑上将文章全部显示出来后的整个视图大小;用户能看得到文章内容的区域定义为文章显示区域,文章显示区域位置始终是不变的,当上下划屏滚动时实际上是文章视图在上下滚动,文章视图会实时把处于文章显示区域位置内的文章内容展现出来;笔记视图定义为NoteView,ArticleView在上下滚动过程中,可通过调用NoteView的回调函数把当前的滚动位置实时传递给NoteView,ArticleView当前的滚动位置定义为ArticleView.offsetY;/nArticleView在加载一篇文章内容时,首先遍历整篇文章的字符数组,根据文章显示区域、排版信息、每个字符的显示宽度和高度以及图片的宽高计算逻辑上完整显示整篇文章后的总长度,并将长度设置为ArticleView的长度;在整个遍历过程中同时会保存文章中各个文字在ArticleView中的绝对位置区域Rect(top,bottom,left,right),即Rect值,并将所有文字的Rect值构成的数组命名为charsRectBuf;把charsRectBuf传递给NoteView;文字是指去掉文章字符数组中所有标签后剩下的文字和图片占位符,图片占位符是指把一张图片看作是一个特殊的文字;绝对位置区域是指ArticleView逻辑上完整显示整个文章时每个文字在ArticleView中的显示区域;Rect(top,bottom,left,right)中,left和top分别表示绝对位置区域的左上角横坐标和纵坐标,right和bottom分别表示绝对位置区域的右下角横坐标和纵坐标;/n当用户做笔记的时候,NoteView在展示用户所画内容的同时记录下每次画笔对应的down、move、up触摸消息的坐标值,当收到up消息时表示画笔已经抬起,完成一个笔记,这时将已经记录本次画笔的down、move、up的坐标值加上ArticleView.offsetY,得到此次的笔记显示区域的Rect值,该显示区域是能够包括此次画笔操作所包含的down、move、up消息所有坐标值的最小矩形;当用户再次拿起画笔做笔记又会得到另一个笔记显示区域Rect值;/n保存笔记时,NoteView查找锚点文字并计算相对位置偏移量:遍历charsRectBuf,确定每个笔记显示区域左上角坐标(Rect.left,Rect.top)对应的锚点文字以及与该锚点文字的绝对位置区域左上角坐标的相对偏移量(offsetX,offsetY)并记录;/n根据所有的笔记显示区域从NoteView画布的bitmap中剪出笔记图片并转化成png图片字节流;/n将保存笔记到数据库,数据库中各项笔记的数据项包括锚点文字的index值、笔记的png图片字节流、offsetX、offsetY、字体大小;其中,所述锚点文字的index值,是指锚点文字在charsRectBuf中的偏移位置,字体大小指的是文章当前显示采用的字体大小;/n当ArticleView上下滚动时,NoteView会实时收到ArticleView.offsetY,NoteView结合文章显示区域和ArticleView.offsetY,通过遍历所有charsRectBuf,得到文章显示区域当前显示的所有文字的index值,根据这些index值从数据库中查找相关的笔记的数据项,读取笔记的png图片字节流并显示出来;/n笔记的png图片在NoteView上的显示位置为(charsRectBuf[index].left+offsetX*f,charsRectBuf[index].to p+offsetY*f-ArticleView.offsetY),其中的f为字体大小变化系数,即当前文章采用字体大小除以数据库保存的字体大小,当f不为1.0时,将笔记png图片按照字体大小变化系数进行缩放后再显示,以达到与字体大小协调一直到目的;charsRectBuf[index].left表示charsRectBuf中第index个文字在ArticleView中显示的左上角坐标的横坐标值,charsRectBuf[index].top:表示第index个文字在ArticleView中显示的左上角坐标的纵坐标值。/n...

【技术特征摘要】
1.一种智能终端实现自适应笔记的方法,其特征在于,具体过程为:
笔记视图分为下层的文章视图和上层的笔记视图;文章视图可以上下滚动,定义为ArticleView,并且定义文章视图的大小为在逻辑上将文章全部显示出来后的整个视图大小;用户能看得到文章内容的区域定义为文章显示区域,文章显示区域位置始终是不变的,当上下划屏滚动时实际上是文章视图在上下滚动,文章视图会实时把处于文章显示区域位置内的文章内容展现出来;笔记视图定义为NoteView,ArticleView在上下滚动过程中,可通过调用NoteView的回调函数把当前的滚动位置实时传递给NoteView,ArticleView当前的滚动位置定义为ArticleView.offsetY;
ArticleView在加载一篇文章内容时,首先遍历整篇文章的字符数组,根据文章显示区域、排版信息、每个字符的显示宽度和高度以及图片的宽高计算逻辑上完整显示整篇文章后的总长度,并将长度设置为ArticleView的长度;在整个遍历过程中同时会保存文章中各个文字在ArticleView中的绝对位置区域Rect(top,bottom,left,right),即Rect值,并将所有文字的Rect值构成的数组命名为charsRectBuf;把charsRectBuf传递给NoteView;文字是指去掉文章字符数组中所有标签后剩下的文字和图片占位符,图片占位符是指把一张图片看作是一个特殊的文字;绝对位置区域是指ArticleView逻辑上完整显示整个文章时每个文字在ArticleView中的显示区域;Rect(top,bottom,left,right)中,left和top分别表示绝对位置区域的左上角横坐标和纵坐标,right和bottom分别表示绝对位置区域的右下角横坐标和纵坐标;
当用户做笔记的时候,NoteView在展示用户所画内容的同时记录下每次画笔对应的down、move、up触摸消息的坐标值,当收到up消息时表示画笔已经抬起,完成一个笔记,这时将已经记录本次画笔的down、move、up的坐标值加上ArticleView.offsetY,得到此次的笔记显示区域的Rect值,该显示区域是能够包括此次画笔操作所包含的down、move、up消息所有坐标值的最小矩形;当用户再次拿起画笔做笔记又会得到另一个笔记显示区域Rect值;
保存笔记时,NoteView查找锚点文字并计算相对位置偏移量:遍历charsRectBuf,确定每个笔记显示区域左上角坐标(Rect.left,Rect.top)对应的锚点文字以及与该锚点文字的绝对位置区域左上角坐标的相对偏移量(offsetX,offsetY)并记录;
根据所有的笔记显示区域从NoteView画布的bitmap中剪出笔记图片并转化成png图片字节流;
将保存笔记到数据库,数据库中各项笔记的数据项包括锚点文字的index值、笔记的png图片字节流、offsetX、offsetY、字体大小;其中,所述锚点文字的index值,是指锚点文字在charsRectBuf中的偏移位置,字体大小指的...

【专利技术属性】
技术研发人员:娄渊胜季英会
申请(专利权)人:读书郎教育科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1