CN109104627B - 安卓电视的焦点背景生成方法、存储介质、设备及系统 - Google Patents
安卓电视的焦点背景生成方法、存储介质、设备及系统 Download PDFInfo
- Publication number
- CN109104627B CN109104627B CN201710474802.XA CN201710474802A CN109104627B CN 109104627 B CN109104627 B CN 109104627B CN 201710474802 A CN201710474802 A CN 201710474802A CN 109104627 B CN109104627 B CN 109104627B
- Authority
- CN
- China
- Prior art keywords
- view
- focus
- background
- module
- setting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000008859 change Effects 0.000 claims abstract description 22
- 238000012545 processing Methods 0.000 claims description 20
- 238000006073 displacement reaction Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 16
- 238000004364 calculation method Methods 0.000 claims description 15
- 230000006378 damage Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 11
- 230000003111 delayed effect Effects 0.000 claims description 7
- 230000005012 migration Effects 0.000 claims description 5
- 238000013508 migration Methods 0.000 claims description 5
- 238000009877 rendering Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241000968591 Haemanthus albiflos Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/485—End-user interface for client configuration
- H04N21/4858—End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
Abstract
本发明公开了一种安卓电视的焦点背景生成方法、存储介质、设备及系统,涉及安卓电视开发技术领域。该方法包括:定位焦点背景的初始空间位置并确定焦点背景的初始大小;在视图组第一次绘制时,根据焦点背景的初始空间位置及初始大小,绘制焦点背景;根据焦点视图的变化情况判断焦点背景是否需要偏移;若需要偏移,则将焦点背景设置为不可见,并根据当前焦点视图的空间位置坐标对焦点背景进行偏移操作,偏移完成后将焦点背景设置为可见;若不需要偏移,则当视图组不再在界面窗口显示时,对焦点背景进行销毁操作。本发明使得焦点视图不会随着焦点背景放大而占用过多屏幕空间,也不会存在因焦点背景数量过多而占用过大内存空间的问题。
Description
技术领域
本发明涉及安卓电视开发技术领域,具体来讲是一种安卓电视的焦点背景生成方法、存储介质、设备及系统。
背景技术
随着智能电视及安卓操作系统的快速发展,安卓电视已日益普及,并受到越来越多人的追捧。所谓安卓电视,顾名思义是搭载了安卓操作系统(Android)的电视,使得电视智能化,能让电视机实现网页浏览、视频电影观看、聊天办公游戏等。
为了便于读者理解,下面先对相关术语进行简单说明:
View(视图):它是安卓系统应用层界面可视化的基本组件单元;
ViewGroup(视图组):它是安卓系统可视化组件View的基本容器单元,可容纳多个视图View;
焦点(Focus):指安卓系统在接收到遥控器或手机等设备的按键信号源后,处理对应指令做出UI层面的显示特效,例如缩放、偏移、背景切换等;
UI(User Interface):泛指用户的操作界面,UI设计主要指界面的样式,美观程度;
布局(onLayout):指安卓系统在绘制视图View前确定视图View的空间位置坐标信息;
绘制(onDraw):指安卓系统在绘制视图View的过程;
属性动画(Property Animation):安卓系统中,属性动画可以作用在视图View的属性上,对属性进行修改,而且不要求对应的属性一定是有显示效果;
矩形坐标(Rect):指安卓系统中用于保存视图View或Drawable坐标信息的类;
Drawable:是安卓应用程序用于存放安卓应用程序本地图片、动画文件等资源的文件夹。
安卓电视在UI交互过程中,为突出焦点的移动通常会给当前获得焦点的视图View添加一些特效,例如缩放动画、添加背景或者前景等。目前安卓电视在给应用或界面中的视图View设置获得焦点的特效时,通常有两种方式:1.给焦点视图设置缩放动画,例如将焦点视图进行放大;2.给焦点视图添加背景视图,例如给焦点视图添加蓝色荧光背景视图。
相比方式1,方式2具有以下优点:方式2由于特效效果更为明显和绚丽,更容易引起用户的注意;方式2不存在方式1中因缩放动画而引起的频繁重绘问题,不会给CPU负荷造成较大影响。由于方式2具有上述优势,因此,方式2成为了目前较为主流的一种焦点视图特效效果。
但在实际应用中,方式2在生成焦点背景时依然存在以下缺陷:
(1)现有的焦点背景生成方式中,由于生成的焦点背景与焦点视图为一个整体(焦点背景是焦点视图的底层背景)。因此,一旦放大焦点背景,焦点视图也就随着放大,这将增大焦点视图所占的屏幕空间。对于屏幕空间有限的电视来说,占用过大的屏幕空间会给人的视觉效果带来影响。
(2)焦点背景通常是一张图片,在实际显示时图片会转换为Drawable,而存储、绘制图片是安卓应用内存消耗大户。现有的焦点背景生成方式中,每一个视图View需设置相应的焦点背景视图,并且每次重绘都会消耗大量内存,因此会增大内存的占用。一旦视图组ViewGroup中视图View数量过多,比如有200个视图View,也就意味着会有200张焦点背景,存储及过度重绘图片无疑会造成内存空间占用过大的问题。
因此,如何提供一种更理想的焦点背景生成方案是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种安卓电视的焦点背景生成方法、存储介质、设备及系统,使得焦点视图不会随着焦点背景放大而占用过多屏幕空间,也不会存在因焦点背景数量过多而占用过大内存空间的问题。
为达到以上目的,本发明采取的技术方案是:提供一种安卓电视的焦点背景生成方法,该方法包括以下步骤:
S1、焦点背景的初始化设置:定位焦点背景的初始空间位置,并确定焦点背景的初始大小;
S2、焦点背景的绘制:在视图组第一次绘制时,根据焦点背景的初始空间位置及初始大小,绘制焦点背景;
S3、焦点背景的偏移判断:根据焦点视图的变化情况判断焦点背景是否需要偏移,若是,转入S4;若否,转入S5;
S4、焦点背景的偏移:将绘制的焦点背景设置为不可见;根据当前焦点视图的空间位置坐标,对焦点背景进行偏移操作;偏移完成后,将焦点背景设置为可见;
S5、焦点背景的销毁:当视图组不再在界面窗口显示时,对绘制的焦点背景进行销毁操作。
在上述技术方案的基础上,步骤S1具体包括以下流程:
S101、判断当前视图组中的第一个视图的状态,若第一个视图的状态为正在布局,则转入S102;若第一个视图的状态为出现延时布局,则转入S103;
S102、将第一个视图的中心点的坐标(CX,Cy)作为焦点背景的初始空间位置的中心坐标;所述中心点的坐标(CX,Cy)的计算公式如下:
CX=(View0.getLeft()+View0.getRight())/2;
Cy=(View0.getTop()+View0.getBottom())/2;
式中,View0.getLeft()为第一个视图的左边长的X轴坐标,View0.getRight()为第一个视图的右边长的X轴坐标,View0.getTop()为第一个视图的顶边长的Y轴坐标,View0.getBottom()为第一个视图的底边长的Y轴坐标,转入S104;
S103、将视图组的左顶点的坐标作为焦点背景的初始空间位置的中心坐标,转入S104;
S104、根据焦点背景的初始大小=第一个视图的大小×需要放大的比例参数,确定焦点背景的初始大小。
在上述技术方案的基础上,步骤S2中,在视图组第一次绘制时,还会记录绘制的视图组的矩形坐标值:在此基础上,步骤S2之后,还包括以下操作:当出现界面刷新或调整的情况时,判断视图组的矩形坐标值是否发生改变;若发生改变,则需销毁当前绘制的焦点背景,然后返回步骤S1,重新进行焦点背景的初始化设置和焦点背景的绘制;若未发生改变,则需先将当前绘制的焦点背景设置为不可见,待视图组中的第一个视图重绘完成后再将当前绘制的焦点背景设置为可见。
本发明还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述安卓电视的焦点背景生成方法的步骤。
本发明还提供一种安卓电视的焦点背景生成设备,包括存储器、处理器及存储在存储器上并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述安卓电视的焦点背景生成方法的步骤。
本发明还提供一种安卓电视的焦点背景生成系统,该系统包括初始化设置模块、绘制模块、偏移判断模块、偏移模块和销毁模块;
所述初始化设置模块用于:收到初始化设置信号后,定位焦点背景的初始空间位置,并确定焦点背景的初始大小;并向绘制模块发送绘制信号;
所述绘制模块用于:收到绘制信号后,在视图组第一次绘制时,根据焦点背景的初始空间位置及初始大小,绘制焦点背景;向偏移判断模块发送偏移判断信号;
所述偏移判断模块用于:收到偏移判断信号后,根据焦点视图的变化情况判断焦点背景是否需要偏移,若是,向偏移模块发送偏移信号;若否,向销毁模块发送销毁信号;
所述偏移模块用于:收到偏移信号后,将绘制的焦点背景设置为不可见;根据当前焦点视图的空间位置坐标,对焦点背景进行偏移操作;偏移完成后,将焦点背景设置为可见;向销毁模块发送销毁信号;
所述销毁模块用于:收到销毁信号后,当视图组不再在界面窗口显示时,对绘制的焦点背景进行销毁操作。
在上述技术方案的基础上,所述初始化设置模块包括视图状态判断子模块、第一初始空间位置设置子模块、第二初始空间位置设置子模块、初始大小设置子模块;
所述视图状态判断子模块用于:判断当前视图组中的第一个视图的状态,若第一个视图的状态为正在布局,则向第一初始空间位置设置子模块发送第一设置信号;若第一个视图的状态为出现延时布局,则向第二初始空间位置设置子模块发送第二设置信号;
所述第一初始空间位置设置子模块用于:收到第一设置信号后,将第一个视图的中心点的坐标(CX,Cy)作为焦点背景的初始空间位置的中心坐标;所述中心点的坐标(CX,Cy)的计算公式如下:
CX=(View0.getLeft()+View0.getRight())/2;
Cy=(View0.getTop()+View0.getBottom())/2;
式中,View0.getLeft()为第一个视图的左边长的X轴坐标,View0.getRight()为第一个视图的右边长的X轴坐标,View0.getTop()为第一个视图的顶边长的Y轴坐标,View0.getBottom()为第一个视图的底边长的Y轴坐标;向初始大小设置子模块发送初始大小设置信号;
所述第二初始空间位置设置子模块用于:收到第二设置信号后,将视图组的左顶点的坐标作为焦点背景的初始空间位置的中心坐标;向初始大小设置子模块发送初始大小设置信号;
所述初始大小设置子模块用于:收到初始大小设置信号后,根据焦点背景的初始大小=第一个视图的大小×需要放大的比例参数,确定焦点背景的初始大小。
在上述技术方案的基础上,所述偏移判断模块根据焦点视图的变化情况判断焦点背景是否需要偏移的具体流程为:当视图组绘制到界面窗口时,设置一个全局焦点改变监听器,并为视图组中的每个视图设置视图焦点监听器;一旦全局焦点改变监听器监听到内部焦点发生改变时,利用每个视图的视图焦点监听器,获取到失去焦点的视图的ID和获得焦点的视图的ID;若失去焦点的视图的ID与获得焦点的视图的ID相同,则表示焦点视图未发生改变,判定焦点背景不需要偏移;若失去焦点的视图的ID与获得焦点的视图的ID不相同,则表示焦点视图发生改变,判定焦点背景需要偏移。
在上述技术方案的基础上,所述偏移模块包括不可见设置及焦点坐标获取子模块、位移变量计算子模块、偏移处理子模块、可见设置子模块;
所述不可见设置及焦点坐标获取子模块用于:收到偏移信号后,将绘制的焦点背景设置为不可见,并获取当前获得焦点的焦点视图的空间位置坐标,向位移变量计算子模块发送计算信号;
所述位移变量计算子模块用于:收到计算信号后,根据获取到的焦点视图的空间位置坐标,计算得到位移变量;向偏移处理子模块发送偏移处理信号;
所述偏移处理子模块用于:收到偏移处理信号后,根据计算得到的位移变量使用属性动画进行焦点背景的偏移操作;向可见设置子模块发送可见设置信号;
所述可见设置子模块用于:收到可见设置信号后,将焦点背景设置为可见,向销毁模块发送销毁信号。
在上述技术方案的基础上,所述绘制模块在视图组第一次绘制时,还会记录绘制的视图组的矩形坐标值;该系统还包括刷新调整处理模块,该刷新调整处理模块用于:当出现界面刷新或调整的情况时,判断视图组的矩形坐标值是否发生改变;若发生改变,则销毁当前绘制的焦点背景,然后向初始化设置模块发送初始化设置信号;若未发生改变,则先将当前绘制的焦点背景设置为不可见,待视图组中的第一个视图重绘完成后再将当前绘制的焦点背景设置为可见。
本发明的有益效果在于:
(1)本发明中,采用单一存在的设计思路使得焦点背景与焦点视图不再作为一个整体存在,二者是相互分离开来的,实现了背景和焦点视图的分割管理,因此,即使焦点背景放大,焦点视图也不会随着放大,也就不会增大焦点视图所占的屏幕空间。并且,由于焦点背景与焦点视图分割管理,因此无需为每个视图View都对应设置一个焦点背景视图,无需大量内存来存储过多的背景图片,只需通过焦点背景的偏移来实现焦点视图的改变即可。与此同时,采用单一绘制的设计思路,使得一般情况下焦点背景只在视图组ViewGroup第一次布局阶段时进行绘制,不会跟随视图的绘制而多次绘制,因此避免了因过度重绘而导致的内存占用过高的问题。
(2)本发明中,针对电视界面出现刷新或调整等特殊情况,增设了相应的适用方法和适用模块,使得本发明的适用性更高、使用范围广,用户体验佳。
附图说明
图1为本发明实施例中安卓电视的焦点背景生成方法的流程图;
图2为本发明实施例中安卓电视的焦点背景生成设备的结构示意图;
图3为本发明实施例中安卓电视的焦点背景生成系统的结构框图;
图4为本发明实施例中初始化设置模块的具体结构框图;
图5为本发明实施例中偏移模块的具体结构框图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细描述。
本发明主要采用一种焦点背景的单一存在(Single instance)、单一重绘(Singleoverdrawing)的技术来解决现有焦点背景生成过程中存在的缺陷。其具体设计思路为:
1.通过单一存在(Single instance)技术解决焦点视图因随着焦点背景放大而变大,从而占用过多屏幕空间的问题。单一存在(Single instance)就是将焦点背景与焦点视图不再作为一个整体存在,二者是相互分离开来的。由于焦点背景和焦点视图实现分割管理,因此,即使焦点背景放大,焦点视图也不会随着放大,也就不会增大焦点视图所占的屏幕空间。
2.通过单一存在(Single instance)和单一重绘(Single overdrawing)技术解决因焦点背景数量过多而占用过大内存空间的问题。由于焦点背景与焦点视图不再作为一个整体存在,二者是相互分离开来的(即单一存在),因此焦点背景的数量不再受视图组ViewGroup中视图View的数量影响,即无需为每个视图View都对应设置一个焦点背景视图,焦点背景图片的数量得到控制,无需大量内存来存储过多的背景图片。并且,在单一存在的基础上,再采用单一重绘技术,使得焦点背景只在视图组ViewGroup第一次布局阶段时进行绘制,不会跟随视图View的绘制而多次绘制,因此不存在过度重绘导致的内存占用过高的问题。
基于上述设计思路,参见图1所示,本发明实施例提供一种安卓电视的焦点背景生成方法,该方法包括以下步骤:
步骤S1、焦点背景的初始化设置:定位焦点背景的初始空间位置,并确定焦点背景的初始大小。
可以理解的是,安卓电视中所有的视图View及视图组ViewGroup均为矩形,则生成的焦点背景也应为矩形。由于在对焦点背景的初始空间位置及初始大小进行初始化设置时,会存在两种情形:第一种是视图组ViewGroup中的第一个视图View0正在布局,此时可根据视图组ViewGroup中第一个视图View0的位置来定位焦点背景的初始空间位置;第二种是视图组ViewGroup中的第一个视图View0出现延时布局,此时无法根据View0的位置来定位焦点背景的初始空间位置。因此,在一种实施方式中,步骤S1具体包括以下流程:
步骤S101、判断当前视图组ViewGroup中的第一个视图View0的状态,若第一个视图View0的状态为正在布局,则转入步骤S102;若第一个视图View0的状态为出现延时布局,则转入步骤S103。
步骤S102、将第一个视图View0的中心点的坐标(CX,Cy)作为焦点背景的初始空间位置的中心坐标;所述中心点的坐标(CX,Cy)的计算公式如下:
CX=(View0.getLeft()+View0.getRight())/2;
Cy=(View0.getTop()+View0.getBottom())/2;
式中,View0.getLeft()为第一个视图View0的左边长的X轴坐标,View0.getRight()为第一个视图View0的右边长的X轴坐标,View0.getTop()为第一个视图View0的顶边长的Y轴坐标,View0.getBottom()为第一个视图View0的底边长的Y轴坐标,转入步骤S104。
步骤S103、将视图组ViewGroup的左顶点的坐标作为焦点背景的初始空间位置的中心坐标,转入步骤S104。可以理解的是,由于第一个视图View0的状态为出现延时布局的状态,因此,此时无法根据第一个视图View0的坐标来确定焦点背景的坐标。而为了防止焦点背景后续偏移量计算出现误差,本发明实施例中,在第一个视图View0出现延时布局的状态时,将图组ViewGroup的左顶点的坐标作为焦点背景的初始空间位置的中心坐标。
步骤S104、根据第一个视图View0的大小来确定焦点背景的初始大小。具体来说,焦点背景的初始大小=第一个视图View0的大小×需要放大的比例参数。
步骤S2、焦点背景的绘制:在视图组ViewGroup第一次绘制时,根据焦点背景的初始空间位置及初始大小,绘制焦点背景。
可以理解的是,焦点背景的绘制需要在视图组ViewGroup的绘制(onDraw)阶段进行,绘制的实现方式是借用安卓系统提供的视图组ViewGroup的画布方法Canvas和画笔方法Paint进行绘制。
步骤S3、焦点背景的偏移判断:根据焦点视图的变化情况判断焦点背景是否需要偏移,若是,转入步骤S4;若否,转入步骤S5。
实际操作时,步骤S3中根据焦点视图的变化情况判断焦点背景是否需要偏移的具体流程为:
当视图组ViewGroup绘制到界面窗口时,设置一个全局焦点改变监听器,并为视图组ViewGroup中的每个视图设置视图焦点监听器;
一旦全局焦点改变监听器监听到内部焦点发生改变时,利用每个视图View的视图焦点监听器,获取到失去焦点的视图的ID(如OldFocusView.getId())和获得焦点的视图的ID(如NewFocusView.getId());
若失去焦点的视图的ID与获得焦点的视图的ID相同,如OldFocusView.getId()==NewFocusView.getId(),则表示焦点视图未发生改变,判定焦点背景不需要偏移;
若失去焦点的视图的ID与获得焦点的视图的ID不相同,如OldFocusView.getId()≠NewFocusView.getId(),则表示焦点视图发生改变,判定焦点背景需要偏移。
步骤S4、焦点背景的偏移:将绘制的焦点背景设置为不可见;根据当前焦点视图的空间位置坐标,对焦点背景进行偏移操作;偏移完成后,将焦点背景设置为可见。
在一种实施方式中,步骤S4具体包括以下流程:
步骤S401、将绘制的焦点背景设置为不可见,并获取当前获得焦点的焦点视图的空间位置坐标;
步骤S402、根据获取到的焦点视图的空间位置坐标,计算得到位移变量;
步骤S403、根据计算得到的位移变量使用属性动画进行焦点背景的偏移操作;
步骤S404、偏移完成后,将焦点背景设置为可见。
步骤S5、焦点背景的销毁:当视图组ViewGroup脱离界面窗口时,即当视图组ViewGroup不再在界面窗口显示时,对绘制的焦点背景进行销毁操作。可以理解的是,当视图组ViewGroup脱离界面窗口时,即使视图组ViewGroup清除掉其内部所有的视图View,也仍需要对焦点背景进行销毁,这是为了有效防止焦点背景资源未回收而导致的内存泄漏。
通过上述步骤的操作,就可以成功完成一个焦点背景的初始化设置、绘制、偏移、销毁等一系列完整过程。整个过程中,焦点背景与焦点视图不再作为一个整体存在,二者是相互分离开来的,实现了背景和焦点视图的分割管理,因此,即使焦点背景放大,焦点视图也不会随着放大,也就不会增大焦点视图所占的屏幕空间;并且,无需为每个视图View都对应设置一个焦点背景视图,无需大量内存来存储过多的背景图片,只需通过焦点背景的偏移来实现焦点视图的改变即可;与此同时,一般情况下焦点背景只在视图组ViewGroup第一次布局阶段时进行绘制,不会跟随视图的绘制而多次绘制,因此避免了因过度重绘而导致的内存占用过高的问题。
更进一步的,本发明实施例中,步骤S2在视图组ViewGroup第一次绘制时,还会记录绘制的视图组ViewGroup的矩形坐标值RectViewGroup。在此基础上,由于实际应用中,可能会出现界面刷新或调整等特殊情况,当出现上述特殊情况时,则需要根据视图组ViewGroup的矩形坐标值RectViewGroup的变化情况对绘制好的焦点背景进行可见性控制或重绘操作。具体来说,步骤S2之后,还包括以下操作:
当出现界面刷新或调整等情况时,判断视图组ViewGroup的矩形坐标值RectViewGroup是否发生改变,判断依据为:界面刷新或界面调整后的视图组ViewGroup的矩形坐标值RectViewGroup是否与之前记录的视图组ViewGroup的矩形坐标值RectViewGroup一致,若一致则表示未发生改变,反之则表示发生改变;
若发生改变,则需要销毁当前绘制的焦点背景,然后返回步骤S1,重新进行焦点背景的初始化设置和焦点背景的绘制;
若未发生改变,则无需改变焦点背景的初始空间位置和初始大小,只需先将当前绘制的焦点背景设置为不可见,待视图组ViewGroup中的的第一个视图View0重绘完成后再将当前绘制的焦点背景设置为可见即可。
对应上述的安卓电视的焦点背景生成方法,本发明实施例还提供一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现上述各实施例中的安卓电视的焦点背景生成方法的步骤。需要说明的是,所述存储介质包括U盘、移动硬盘、ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、磁碟或者光盘等各种可以存储程序代码的介质。
另外,参见图2所示,对应上述的安卓电视的焦点背景生成方法,本发明实施例还提供一种安卓电视的焦点背景生成设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时可实现上述各实施例中的安卓电视的焦点背景生成方法的步骤。
参见图3所示,本发明实施例还提供一种安卓电视的焦点背景生成系统,该系统包括初始化设置模块、绘制模块、偏移判断模块、偏移模块和销毁模块。
其中,初始化设置模块用于:收到初始化设置信号后,定位焦点背景的初始空间位置,并确定焦点背景的初始大小;并向绘制模块发送绘制信号。
绘制模块用于:收到绘制信号后,在视图组第一次绘制时,根据焦点背景的初始空间位置及初始大小,绘制焦点背景;向偏移判断模块发送偏移判断信号。
偏移判断模块用于:收到偏移判断信号后,根据焦点视图的变化情况判断焦点背景是否需要偏移,若是,向偏移模块发送偏移信号;若否,向销毁模块发送销毁信号。其具体流程为:当视图组绘制到界面窗口时,设置一个全局焦点改变监听器,并为视图组中的每个视图设置视图焦点监听器;一旦全局焦点改变监听器监听到内部焦点发生改变时,利用每个视图的视图焦点监听器,获取到失去焦点的视图的ID和获得焦点的视图的ID;若失去焦点的视图的ID与获得焦点的视图的ID相同,则表示焦点视图未发生改变,判定焦点背景不需要偏移;若失去焦点的视图的ID与获得焦点的视图的ID不相同,则表示焦点视图发生改变,判定焦点背景需要偏移。
偏移模块用于:收到偏移信号后,将绘制的焦点背景设置为不可见;根据当前焦点视图的空间位置坐标,对焦点背景进行偏移操作;偏移完成后,将焦点背景设置为可见;向销毁模块发送销毁信号。
销毁模块用于:收到销毁信号后,当视图组不再在界面窗口显示时,对绘制的焦点背景进行销毁操作。
进一步地,参见图4所示,所述初始化设置模块包括视图状态判断子模块、第一初始空间位置设置子模块、第二初始空间位置设置子模块和初始大小设置子模块。
其中,视图状态判断子模块用于:收到初始化设置信号后,判断当前视图组中的第一个视图的状态,若第一个视图的状态为正在布局,则向第一初始空间位置设置子模块发送第一设置信号;若第一个视图的状态为出现延时布局,则向第二初始空间位置设置子模块发送第二设置信号;
第一初始空间位置设置子模块用于:收到第一设置信号后,将第一个视图的中心点的坐标(CX,Cy)作为焦点背景的初始空间位置的中心坐标;所述中心点的坐标(CX,Cy)的计算公式如下:
CX=(View0.getLeft()+View0.getRight())/2;
Cy=(View0.getTop()+View0.getBottom())/2;
式中,View0.getLeft()为第一个视图的左边长的X轴坐标,View0.getRight()为第一个视图的右边长的X轴坐标,View0.getTop()为第一个视图的顶边长的Y轴坐标,View0.getBottom()为第一个视图的底边长的Y轴坐标;向初始大小设置子模块发送初始大小设置信号;
第二初始空间位置设置子模块用于:收到第二设置信号后,将视图组的左顶点的坐标作为焦点背景的初始空间位置的中心坐标;向初始大小设置子模块发送初始大小设置信号;
初始大小设置子模块用于:收到初始大小设置信号后,根据焦点背景的初始大小=第一个视图的大小×需要放大的比例参数,确定焦点背景的初始大小。
更进一步地,参见图5所示,所述偏移模块包括不可见设置及焦点坐标获取子模块、位移变量计算子模块、偏移处理子模块、可见设置子模块。
其中,不可见设置及焦点坐标获取子模块用于:收到偏移信号后,将绘制的焦点背景设置为不可见,并获取当前获得焦点的焦点视图的空间位置坐标,向位移变量计算子模块发送计算信号;
位移变量计算子模块用于:收到计算信号后,根据获取到的焦点视图的空间位置坐标,计算得到位移变量;向偏移处理子模块发送偏移处理信号;
偏移处理子模块用于:收到偏移处理信号后,根据计算得到的位移变量使用属性动画进行焦点背景的偏移操作;向可见设置子模块发送可见设置信号;
可见设置子模块用于:收到可见设置信号后,将焦点背景设置为可见;向销毁模块发送销毁信号。
再进一步地,由于实际应用中,可能会出现界面刷新或调整等特殊情况,当出现上述特殊情况时,则需要对绘制好的焦点背景进行可见性控制或重绘操作。具体来说,所述绘制模块在视图组第一次绘制时,还会记录绘制的视图组的矩形坐标值。在此基础上,该安卓电视的焦点背景生成系统还包括刷新调整处理模块。该刷新调整处理模块用于:当出现界面刷新或调整的情况时,判断视图组的矩形坐标值是否发生改变;若发生改变,则销毁当前绘制的焦点背景,然后向初始化设置模块发送初始化设置信号;若未发生改变,则先将当前绘制的焦点背景设置为不可见,待视图组中的第一个视图重绘完成后再将当前绘制的焦点背景设置为可见。
需要说明的是:上述实施例提供的系统在实现安卓电视的焦点背景生成操作时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将系统的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (10)
1.一种安卓电视的焦点背景生成方法,其特征在于,该方法包括以下步骤:
S1、焦点背景的初始化设置:定位焦点背景的初始空间位置,并确定焦点背景的初始大小;
S2、焦点背景的绘制:在视图组第一次绘制时,根据焦点背景的初始空间位置及初始大小,绘制焦点背景;
S3、焦点背景的偏移判断:根据焦点视图的变化情况判断焦点背景是否需要偏移,若是,转入S4;若否,转入S5;
S4、焦点背景的偏移:将绘制的焦点背景设置为不可见;根据当前焦点视图的空间位置坐标,对焦点背景进行偏移操作;偏移完成后,将焦点背景设置为可见;
S5、焦点背景的销毁:当视图组不再在界面窗口显示时,对绘制的焦点背景进行销毁操作。
2.如权利要求1所述的安卓电视的焦点背景生成方法,其特征在于,步骤S1具体包括以下流程:
S101、判断当前视图组中的第一个视图的状态,若第一个视图的状态为正在布局,则转入S102;若第一个视图的状态为出现延时布局,则转入S103;
S102、将第一个视图的中心点的坐标(CX,Cy)作为焦点背景的初始空间位置的中心坐标;所述中心点的坐标(CX,Cy)的计算公式如下:
CX=(View0.getLeft()+View0.getRight())/2;
Cy=(View0.getTop()+View0.getBottom())/2;
式中,View0.getLeft()为第一个视图的左边长的X轴坐标,View0.getRight()为第一个视图的右边长的X轴坐标,View0.getTop()为第一个视图的顶边长的Y轴坐标,View0.getBottom()为第一个视图的底边长的Y轴坐标,转入S104;
S103、将视图组的左顶点的坐标作为焦点背景的初始空间位置的中心坐标,转入S104;
S104、根据焦点背景的初始大小=第一个视图的大小×需要放大的比例参数,确定焦点背景的初始大小。
3.如权利要求1所述的安卓电视的焦点背景生成方法,其特征在于:步骤S2中,在视图组第一次绘制时,还会记录绘制的视图组的矩形坐标值:在此基础上,步骤S2之后,还包括以下操作:
当出现界面刷新或调整的情况时,判断视图组的矩形坐标值是否发生改变;
若发生改变,则需销毁当前绘制的焦点背景,然后返回步骤S1,重新进行焦点背景的初始化设置和焦点背景的绘制;
若未发生改变,则需先将当前绘制的焦点背景设置为不可见,待视图组中的第一个视图重绘完成后再将当前绘制的焦点背景设置为可见。
4.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述权利要求1至3中任一项所述方法的步骤。
5.一种安卓电视的焦点背景生成设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现上述权利要求1至3中任一项所述方法的步骤。
6.一种安卓电视的焦点背景生成系统,其特征在于:该系统包括初始化设置模块、绘制模块、偏移判断模块、偏移模块和销毁模块;
所述初始化设置模块用于:收到初始化设置信号后,定位焦点背景的初始空间位置,并确定焦点背景的初始大小;并向绘制模块发送绘制信号;
所述绘制模块用于:收到绘制信号后,在视图组第一次绘制时,根据焦点背景的初始空间位置及初始大小,绘制焦点背景;向偏移判断模块发送偏移判断信号;
所述偏移判断模块用于:收到偏移判断信号后,根据焦点视图的变化情况判断焦点背景是否需要偏移,若是,向偏移模块发送偏移信号;若否,向销毁模块发送销毁信号;
所述偏移模块用于:收到偏移信号后,将绘制的焦点背景设置为不可见;根据当前焦点视图的空间位置坐标,对焦点背景进行偏移操作;偏移完成后,将焦点背景设置为可见;向销毁模块发送销毁信号;
所述销毁模块用于:收到销毁信号后,当视图组不再在界面窗口显示时,对绘制的焦点背景进行销毁操作。
7.如权利要求6所述的安卓电视的焦点背景生成系统,其特征在于:所述初始化设置模块包括视图状态判断子模块、第一初始空间位置设置子模块、第二初始空间位置设置子模块、初始大小设置子模块;
所述视图状态判断子模块用于:判断当前视图组中的第一个视图的状态,若第一个视图的状态为正在布局,则向第一初始空间位置设置子模块发送第一设置信号;若第一个视图的状态为出现延时布局,则向第二初始空间位置设置子模块发送第二设置信号;
所述第一初始空间位置设置子模块用于:收到第一设置信号后,将第一个视图的中心点的坐标(CX,Cy)作为焦点背景的初始空间位置的中心坐标;所述中心点的坐标(CX,Cy)的计算公式如下:
CX=(View0.getLeft()+View0.getRight())/2;
Cy=(View0.getTop()+View0.getBottom())/2;
式中,View0.getLeft()为第一个视图的左边长的X轴坐标,View0.getRight()为第一个视图的右边长的X轴坐标,View0.getTop()为第一个视图的顶边长的Y轴坐标,View0.getBottom()为第一个视图的底边长的Y轴坐标;向初始大小设置子模块发送初始大小设置信号;
所述第二初始空间位置设置子模块用于:收到第二设置信号后,将视图组的左顶点的坐标作为焦点背景的初始空间位置的中心坐标;向初始大小设置子模块发送初始大小设置信号;
所述初始大小设置子模块用于:收到初始大小设置信号后,根据焦点背景的初始大小=第一个视图的大小×需要放大的比例参数,确定焦点背景的初始大小。
8.如权利要求6所述的安卓电视的焦点背景生成系统,其特征在于:所述偏移判断模块根据焦点视图的变化情况判断焦点背景是否需要偏移的具体流程为:
当视图组绘制到界面窗口时,设置一个全局焦点改变监听器,并为视图组中的每个视图设置视图焦点监听器;一旦全局焦点改变监听器监听到内部焦点发生改变时,利用每个视图的视图焦点监听器,获取到失去焦点的视图的ID和获得焦点的视图的ID;
若失去焦点的视图的ID与获得焦点的视图的ID相同,则表示焦点视图未发生改变,判定焦点背景不需要偏移;
若失去焦点的视图的ID与获得焦点的视图的ID不相同,则表示焦点视图发生改变,判定焦点背景需要偏移。
9.如权利要求6所述的安卓电视的焦点背景生成系统,其特征在于:所述偏移模块包括不可见设置及焦点坐标获取子模块、位移变量计算子模块、偏移处理子模块、可见设置子模块;
所述不可见设置及焦点坐标获取子模块用于:收到偏移信号后,将绘制的焦点背景设置为不可见,并获取当前获得焦点的焦点视图的空间位置坐标,向位移变量计算子模块发送计算信号;
所述位移变量计算子模块用于:收到计算信号后,根据获取到的焦点视图的空间位置坐标,计算得到位移变量;向偏移处理子模块发送偏移处理信号;
所述偏移处理子模块用于:收到偏移处理信号后,根据计算得到的位移变量使用属性动画进行焦点背景的偏移操作;向可见设置子模块发送可见设置信号;
所述可见设置子模块用于:收到可见设置信号后,将焦点背景设置为可见;向销毁模块发送销毁信号。
10.如权利要求6所述的安卓电视的焦点背景生成系统,其特征在于:所述绘制模块在视图组第一次绘制时,还会记录绘制的视图组的矩形坐标值;
在此基础上,该系统还包括刷新调整处理模块,该刷新调整处理模块用于:当出现界面刷新或调整的情况时,判断视图组的矩形坐标值是否发生改变;若发生改变,则销毁当前绘制的焦点背景,然后向初始化设置模块发送初始化设置信号;若未发生改变,则先将当前绘制的焦点背景设置为不可见,待视图组中的第一个视图重绘完成后再将当前绘制的焦点背景设置为可见。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710474802.XA CN109104627B (zh) | 2017-06-21 | 2017-06-21 | 安卓电视的焦点背景生成方法、存储介质、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710474802.XA CN109104627B (zh) | 2017-06-21 | 2017-06-21 | 安卓电视的焦点背景生成方法、存储介质、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109104627A CN109104627A (zh) | 2018-12-28 |
CN109104627B true CN109104627B (zh) | 2020-08-04 |
Family
ID=64796118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710474802.XA Active CN109104627B (zh) | 2017-06-21 | 2017-06-21 | 安卓电视的焦点背景生成方法、存储介质、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109104627B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112351328A (zh) * | 2020-09-24 | 2021-02-09 | 深圳Tcl新技术有限公司 | 智能电视焦点的呈现方法、设备及存储介质 |
CN115022700B (zh) * | 2022-05-18 | 2024-03-08 | 海看网络科技(山东)股份有限公司 | 一种电视中实现焦点闪屏的方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050010875A1 (en) * | 2003-05-28 | 2005-01-13 | Darty Mark Anthony | Multi-focal plane user interface system and method |
US9584868B2 (en) * | 2004-07-30 | 2017-02-28 | Broadband Itv, Inc. | Dynamic adjustment of electronic program guide displays based on viewer preferences for minimizing navigation in VOD program selection |
CN101882432B (zh) * | 2010-02-01 | 2012-07-04 | 深圳市同洲电子股份有限公司 | 一种焦点元素显示方法、装置及数字电视接收终端 |
US9609395B2 (en) * | 2012-03-26 | 2017-03-28 | Max Abecassis | Second screen subtitles function |
CN103455254B (zh) * | 2012-06-05 | 2018-05-22 | 腾讯科技(深圳)有限公司 | 界面焦点移动控制方法及控制装置 |
US20190056828A1 (en) * | 2012-09-06 | 2019-02-21 | Google Inc. | User interface transitions |
CN105635787A (zh) * | 2014-11-20 | 2016-06-01 | 未来电视有限公司 | 电视视频菜单的显示方法和装置 |
CN104469465A (zh) * | 2014-12-09 | 2015-03-25 | 四川长虹电器股份有限公司 | 基于安卓系统的智能电视悬浮主场景交互方法 |
CN105812881B (zh) * | 2014-12-30 | 2019-03-01 | Tcl集团股份有限公司 | 一种用户界面的窗口处理方法、系统及电视机 |
CN106484080B (zh) * | 2015-08-26 | 2019-12-13 | 阿里巴巴集团控股有限公司 | 一种显示界面的展示方法、装置及设备 |
CN105791945B (zh) * | 2016-03-14 | 2018-07-24 | 深圳市茁壮网络股份有限公司 | 一种焦点显示方法及装置 |
CN106557229A (zh) * | 2016-10-28 | 2017-04-05 | 珠海市魅族科技有限公司 | 焦点显示方法和装置 |
CN106878811A (zh) * | 2017-01-18 | 2017-06-20 | 环球智达科技(北京)有限公司 | 一种智能电视应用焦点移动控制方案 |
-
2017
- 2017-06-21 CN CN201710474802.XA patent/CN109104627B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109104627A (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102442170B1 (ko) | 디스플레이 장치의 이의 디스플레이 방법 | |
CN109242943B (zh) | 一种图像渲染方法、装置及图像处理设备、存储介质 | |
CN110377264B (zh) | 图层合成方法、装置、电子设备及存储介质 | |
US20140092006A1 (en) | Device and method for modifying rendering based on viewer focus area from eye tracking | |
CN111866423A (zh) | 用于电子终端的录屏方法及相应设备 | |
CN110427601B (zh) | 表格处理方法、装置、智能交互平板及存储介质 | |
CN108228050B (zh) | 一种图片缩放方法、装置以及电子设备 | |
CN106658139B (zh) | 一种焦点控制方法及装置 | |
CN106156240B (zh) | 信息处理方法、信息处理装置及用户设备 | |
EP4002281A1 (en) | Layer composition method and apparatus, electronic device, and storage medium | |
CN103702032A (zh) | 图像处理方法、装置和终端设备 | |
CN111010601A (zh) | 一种智能电视的焦点控制方法、智能电视及存储介质 | |
CN106648508B (zh) | 一种图像绘制方法和装置 | |
CN114385052B (zh) | 一种Tab栏的动态展示方法及三维显示设备 | |
CN109104627B (zh) | 安卓电视的焦点背景生成方法、存储介质、设备及系统 | |
CN109104628B (zh) | 安卓电视的焦点前景生成方法、存储介质、设备及系统 | |
CN113504964B (zh) | 页面组件高度确定方法、装置、计算机设备和存储介质 | |
CN111428455B (zh) | 表格管理方法、装置、设备及存储介质 | |
CN102135666A (zh) | 狭缝光栅显示方法及装置 | |
TW202025080A (zh) | 用於圖形處理之方法及裝置 | |
US20220083208A1 (en) | Non-proportionally transforming and interacting with objects in a zoomable user interface | |
CN107273072B (zh) | 图片显示方法、装置及电子设备 | |
CN104639969A (zh) | 一种页面全屏显示方法和装置 | |
CN105279167A (zh) | 一种根据用户喜好动态排列资讯模块的方法 | |
CN111966853B (zh) | 一种遥感影像的管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240202 Address after: Room 801, 85 Kefeng Road, Huangpu District, Guangzhou City, Guangdong Province Patentee after: Yami Technology (Guangzhou) Co.,Ltd. Country or region after: China Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd. Country or region before: China |
|
TR01 | Transfer of patent right |