基于Android平台的走马灯效果实现装置及方法与流程

文档序号:11154104阅读:369来源:国知局
基于Android平台的走马灯效果实现装置及方法与制造工艺

本发明涉及走马灯效果实现技术领域,尤其涉及基于Android平台的走马灯效果实现装置以及方法。



背景技术:

在过去的几年时间,Android平台得到了快速的发展。Android平台越来越稳定,安全漏洞也逐渐被谷歌公司修复,已逐渐趋于成熟。因此,很多平台开始往Android平台进行移植,这就使得原有平台已有的软件也需要在Android平台重新实现。但是,Android平台并不是绝对完美的,硬件处理性能较差是它比起其它平台一个较为明显的缺点。因为这个缺点,就决定了Android平台处理大数据运算、图片处理和显示等存在较大的局限。一直以来,Android平台走马灯效果难以得到较完美的实现,就是由于这一局限所导致。

现有技术中有提出使用谷歌公司提供的TextView控件(Android平台用于显示文字的视图控件)的ellipsize属性(Android平台TextView控件实现走马灯效果的属性)来实现走马灯效果;该技术方案的实现原理是:如果TextView设置了ellipsize属性,那么在TextView被初始化时就会通过AttributeSet(谷歌公司实现的属性集合类)进行解析,一旦解析到ellipsize的值合法,那么就将TextView上能够显示的文字数量进行扩大,使其长度大于TextView视图本身的宽度,然后通过Canvas(Android平台用于绘制的画布)重复绘制,在每次绘制时,重新计算开始绘制点的坐标,这样就达到了滚动的效果。与其他使用Canvas绘制走马灯效果不同的是,该技术方案不需要开发者自己进行实现,而是由谷歌公司提供,开发者只是简单的设置一个ellipsize属性即可。然而,此种技术方案实现的走马灯效果较差,在运行过程中抖动、卡顿效果较明显。

此外,现有技术中也有提出通过Canvas将需要显示的内容进行动态的绘制,以产生走马灯的效果;而实现的办法或者是均分时间绘制或者是均分位移进行绘制。然而,此种方案同样存在走马灯效果较差,在运行过程中抖动、卡顿效果较明显等问题。



技术实现要素:

因此,为克服现有技术中的缺陷和不足,本发明提出一种基于Android平台的走马灯效果实现装置以及方法。

具体地,本发明实施例提出的一种基于Android平台的走马灯效果实现装置包括:数据集模块、适配器、数据处理模块、平滑滚动模块、RecyclerView控件,且RecyclerView控件配置有布局管理器。其中,数据处理模块用于循环查找子视图并往内存块依序绘制查找的子视图;适配器用于将数据集模块中的数据与数据处理模块查找的子视图进行绑定;平滑滚动模块用于在数据处理模块往内存块绘制查找的子视图时计算子视图基于像素点移动的速度以及预设时间长度移动的位移以控制绘制查找的子视图时的图像帧绘制速度;RecyclerView控件用于滚动显示数据处理模块绘制的子视图;以及布局管理器用于设置子视图滚动方向。

在本发明的一个实施例中,所述控制绘制查找的子视图时的图像帧绘制速度包括:当子视图基于像素点移动的速度快时,减慢图像帧绘制速度;以及当子视图基于像素点移动的速度慢时,加快图像帧绘制速度。

在本发明的一个实施例中,所述数据处理模块往内存块依序绘制查找的子视图是通过Canvas控件实现。

在本发明的一个实施例中,所述子视图滚动方向选自于向上滚动、向下滚动、向左滚动和向右滚动之一。

在本发明的一个实施例中,所述基于Android平台的走马灯效果实现装置应用于LED显示屏系统。

此外,本发明实施例提出的一种基于Android平台的走马灯效果实现方法,包括步骤:(i)循环查找RecyclerView控件需要显示的多个子视图并往内存块依序绘制查找的子视图;(ii)在往内存块绘制查找的子视图时,计算子视图基于像素点移动的速度以及预设时间长度移动的位移以控制绘制查找的子视图时的图像帧绘制速度;以及(iii)利用所述RecyclerView控件往预设方向滚动显示绘制的子视图。

在本发明的一个实施例中,在步骤(i)中,往内存块依序绘制查找的子视图是通过Canvas控件实现。

在本发明的一个实施例中,在步骤(ii)中,控制绘制查找的子视图时的图像帧绘制速度包括:当子视图基于像素点移动的速度快时,减慢图像帧绘制速度;以及当子视图基于像素点移动的速度慢时,加快图像帧绘制速度。

在本发明的一个实施例中,在步骤(iii)中,往预设方向滚动显示为向上滚动显示、向下滚动显示、向左滚动显示或向右滚动显示。

在本发明的一个实施例中,所述基于Android平台的走马灯效果实现方法还包括步骤:利用相关于RecyclerView控件的布局管理器的Direction属性设置所述预设方向。

由上可知,本发明实施例通过设置数据处理模块及平滑滚动模块,能够在Android平台上利用RecyclerView控件实现走马灯效果且能够使得Android平台走马灯抖动效果及卡顿效果得到明显改善;此外,通过配置布局管理器来设置子视图滚动方向,可以实现多个方向例如上、下、左、右四个方向的走马灯效果。

通过以下参考附图的详细说明,本发明的其它方面和特征变得明显。但是应当知道,该附图仅仅为解释的目的设计,而不是作为本发明的范围的限定。还应当知道,除非另外指出,不必要依比例绘制附图,它们仅仅力图概念地说明此处描述的结构和流程。

附图说明

下面将结合附图,对本发明的具体实施方式进行详细的说明。

图1为相关技术方案中利用RecyclerView控件实现静态画面显示的总体模块图。

图2为本发明实施例的一种基于Android平台的走马灯效果实现装置的模块示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

具体地,参见图1,其为相关技术方案中利用RecyclerView控件实现静态画面显示的总体模块图。如图1所示,其主要分为三大部分:数据集(DataSet)模块11、适配器(Adapter)13和RecyclerView(可重用视图)控件15。其中,RecyclerView控件15为一种容器控件;适配器13主要用来将数据集模块11中的数据和RecyclerView控件15显示的子视图进行绑定,其一方面可以用来监视数据集模块15中的数据变化,另一方面可以用来当数据集模块11中的数据有变化时通知RecyclerView控件15。然而,在图1所示总体模块图中,RecyclerView控件15通过适配器13与数据集模块11进行关联显示画面时的画面内容是静态的,并无走马灯效果。

因此为了实现走马灯效果,本发明下述实施例将结合图2详细描述一种基于Android平台的走马灯效果实现技术方案。

参见图2,为实现本地或者网络数据的走马灯效果,本实施例在图1的基础上增设了数据处理模块24a和平滑滚动模块24b并且为RecyclerView控件15配置了布局管理器(LayoutManager)151,使得用户界面显示内容能够在指定方向上平滑滚动起来。

数据处理模块24a用于实现循环查找子视图的功能,其工作原理如下:如果RecyclerView控件15有多个例如n个子视图需要显示,当前呈现给用户的子视图为第m个子视图,那么此时它对应的子视图数据在内存块P中,如果要查找第n个子视图,就需要将第m+1个子视图通过Canvas(画布)绘制到内存块P中,然后依次是第m+2个、第m+3个、第m+4个、…、.第n个子视图;绘制到第n个子视图时,RecyclerView控件15便知道这是它最终查找的子视图,因此不再继续往下查找;如果需要循环查找,方法与上述提到的类似,只是找到最后一个子视图后,又往内存块P绘制第1个子视图;至于各个子视图的显示内容数据,则是通知适配器13从数据集模块11获取,而数据集模块11作为需要显示走马灯效果的数据源。

平滑滚动模块24b用于实现子视图平滑滚动的功能,其工作原理如下:主要使用的技术手段有二,其一是在数据处理模块24a每次查找子视图时计算单位时间(例如每秒)需要移动多少个像素,其二是计算预设时间长度(例如一秒)移动的位移值。在前述循环查找中提到,每次查找实际上就是往内存块P通过Canvas绘图的过程,那么就需要计算,对于同一个子视图,Android系统每一帧每次绘制时的起始坐标是多少,每帧应该往某个方向移动多少个像素进行绘制,这样每秒移动多少个像素就能够计算出来,而计算出的每秒移动的像素值实际上就是RecyclerView控件15显示的子视图基于像素点移动的速度。动态计算和动态绘制导致的最终结果便是RecyclerView控件15的显示内容移动。但是,为什么本实施例又提出使用“预设时间长度移动的位移值”呢?原因是:如果只是简单的根据起始坐标进行绘制和移动,由于CPU每秒绘制的帧不一致,加上频繁的逻辑运算和图像绘制会导致CPU性能有所下降,那么每秒绘制的帧数量会差别较大,从而产生明显的丢帧和卡帧,造成抖动和卡顿现象。计算位移值的好处是:如果计算的每秒需要移动的像素值不一致,即速度不一致,只要能够保证位移大致相等,那么单位时间绘制的图像在视觉效果上便不会出现较大反差,移动的像素值大即速度快的少绘制几帧图像(对应减慢图像帧绘制速度),移动的像素值小即速度慢的多绘制几帧图像(对应加快图像帧绘制速度),这样就达到了“较平滑滚动”的效果。

此外,布局管理器151用于通过其内部封装的Direction属性对RecyclerView控件15的子视图滚动方向进行控制;比如Direction属性被设置为Up,那么RecyclerView控件15的子视图在平滑滚动的过程中,就会不断地在垂直方向计算每次应该往上移动多少个像素和位移进行绘制,其它方向的实现与此类似,因而可以实现上、下、左、右四个方向的走马灯效果。

对于前述图2所示的数据集模块11、适配器13、数据处理模块24a、平滑滚动模块24b和配置有布局管理器151的RecyclerView控件15,简而言之,数据处理模块24a用于循环查找子视图并利用例如Canvas控件往内存块依序绘制查找的子视图,适配器13用于将数据集模块11中的数据与数据处理模块24a查找的子视图进行绑定,平滑滚动模块24b用于在数据处理模块24a利用Canvas控件内存块绘制子视图时计算子视图基于像素点移动的速度以及预设时间长度移动的位移来控制绘制查找的子视图时的图像帧绘制速度从而实现子视图的平滑滚动,RecyclerView控件15用于滚动显示数据处理模块24a绘制的子视图,以及布局管理器151用于设置子视图滚动方向。而且,值得一提的是,各个功能模块例如是由软件实现。

综上所述,本发明实施例通过设置数据处理模块24a及平滑滚动模块24b,能够在Android平台上利用RecyclerView控件实现走马灯效果且能够使得Android平台走马灯抖动效果及卡顿效果得到明显改善;此外,通过配置布局管理器151来设置子视图滚动方向,可以实现多个方向例如上、下、左、右四个方向的走马灯效果。另外,RecyclerView控件15本身具有实现子视图可重用/可回收的特性,每一个可重用的子视图对应RAM上的一个数据缓冲区,因此即使数据集模块11中的数据比较庞大,只是复用这些已有的缓冲区,而不需要另辟内存空间,从而不会占用较大内存,不会影响大数据运算处理。

最后,值得一提的是,本发明前述实施例的走马灯效果实现技术方案不局限于手机、平板电脑和LED显示屏系统等领域,也可以是电视及其它应用走马灯效果的行业和领域。

上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1