CN106201155A - 用户界面显示方法和系统 - Google Patents
用户界面显示方法和系统 Download PDFInfo
- Publication number
- CN106201155A CN106201155A CN201510221818.0A CN201510221818A CN106201155A CN 106201155 A CN106201155 A CN 106201155A CN 201510221818 A CN201510221818 A CN 201510221818A CN 106201155 A CN106201155 A CN 106201155A
- Authority
- CN
- China
- Prior art keywords
- role
- user interface
- value
- data
- working area
- 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.)
- Granted
Links
Abstract
本发明涉及一种用户界面显示方法和系统,接收角色切换指令后调用切换角色页面进行显示,并结束用户界面的桌面启动器应用,回收上一角色运行所占内存。接收角色选择指令,并根据角色选择指令选择当前角色。保存当前角色,并根据当前角色重新加载用户界面。由于可进行多角色的切换,不同人群可以选择自己喜欢用户界面风格,可满足不同人群的需求,提高使用便利性。在切换角色时将上一角色所占用的资源全部释放掉,做到了用户界面多角色切换不增加内存的效果,降低了生产成本。
Description
技术领域
本发明涉及信息显示技术领域,特别是涉及一种用户界面显示方法和系统。
背景技术
智能电视、触控屏手机或平板电脑等设备的用户界面给人机交互提供了便利,在人们日常生活和工作中起着重要的作用。
传统的智能电视的界面显示不够智能,内容很多,使用不方便,很多老人、小孩等人群操作困难,很难找到自己关心的内容。虽然存在为老人或小孩专门定制的老人电视和儿童电视,但一家人中往往会有老人、中年人、儿童多个年龄段的用户,不能同时满足一家人的需求。传统的智能电视存在使用不便的缺点。
发明内容
基于此,有必要针对上述问题,提供一种可提高使用便利性的用户界面显示方法和系统。
一种用户界面显示方法,包括以下步骤:
接收角色切换指令后调用切换角色页面进行显示;
结束用户界面的桌面启动器应用,回收上一角色运行所占内存;
接收角色选择指令,并根据所述角色选择指令选择当前角色;
保存所述当前角色,并根据所述当前角色重新加载所述用户界面。
一种用户界面显示系统,包括:
切换指令接收模块,用于接收角色切换指令后调用切换角色页面进行显示;
应用内存回收模块,用于结束用户界面的桌面启动器应用,回收上一角色运行所占内存;
选择指令接收模块,用于接收角色选择指令,并根据所述角色选择指令选择当前角色;
角色保存加载模块,用于保存所述当前角色,并根据所述当前角色重新加载所述用户界面。
上述用户界面显示方法和系统,接收角色切换指令后调用切换角色页面进行显示,并结束用户界面的桌面启动器应用,回收上一角色运行所占内存。接收角色选择指令,并根据角色选择指令选择当前角色。保存当前角色,并根据当前角色重新加载用户界面。由于可进行多角色的切换,不同人群可以选择自己喜欢用户界面风格,可满足不同人群的需求,提高使用便利性。在切换角色时将上一角色所占用的资源全部释放掉,做到了用户界面多角色切换不增加内存的效果,降低了生产成本。
附图说明
图1为一实施例中用户界面显示方法的流程图;
图2为另一实施例中用户界面显示方法的流程图;
图3为一实施例中用户界面的示意图;
图4为一实施例中用户界面显示系统的结构图;
图5为另一实施例中用户界面显示系统的结构图。
具体实施方式
一种用户界面显示方法,具体可应用于智能电视、触控屏手机或平板电脑等设备的界面显示,为便于理解,以下均以智能电视的用户界面显示为例进行解释说明。如图1所示,用户界面显示方法包括以下步骤:
步骤S130:接收角色切换指令后调用切换角色页面进行显示。用户具体可通过按下遥控器上的角色键发送角色切换指令至智能电视,控制智能电视的用户界面跳转到切换角色页面进行显示。
在其中一个实施例中,如图2所示,步骤S130之前,还包括步骤S110和步骤S120。
步骤S110:进行数据初始化处理。
可以是在应用启动时通过重写onCreate()来初始化数据。具体地,本实施例中进行数据初始化处理包括设置桌面启动器的上下文目录、应用数据库初始化、壁纸设置、顶部状态栏初始化、导航栏初始化、工作区初始化和任务队列初始化中的至少一种。上下文目录是指桌面启动器的框架布局,框架布局包含ImageView(图片视图)的焦点框和LinearLayout(线性布局),如图3所示,LinearLayout包括顶部状态栏11、导航栏12、工作区13的布局。
步骤S120:加载用户界面配置数据。具体可通过重写onResume()的方法加载用户界面配置数据。在其中一个实施例中,步骤S120包括步骤122至步骤127。
步骤122:读取当前内存中角色的值。角色的值用一个整型变量表示,具体用SharedPreferences(轻量级存储类)储存方式进行保存,可保存在智能电视的FLASH存储器中。
步骤123:判断当前内存中角色的值是否为预设的默认值。因为角色的值使用比较频繁,所以在内存中用一个变量来保存,本实施例中变量的默认值为-1。
步骤124:若当前内存中角色的值为默认值,则从轻量级存储类中获取预先保存的角色的值。如果当前内存中角色的值为-1,则从SharedPreferences中获取所保存的角色的值。如果获取不到则返回-1。如果当前角色的值小于0,即为-1的默认值时,则认为首次启动这个应用,跳转到切换角色的页面。
步骤125:若当前内存中角色的值不是默认值,则获取当前内存中角色的值。如果当前内存中角色的值不为-1,则可直接返回当前内存中角色的值,将当前内存中的值作为角色的值。
步骤126:判断获取的角色的值是否在预设的允许范围内。允许范围可根据实际情况调整,若获取的角色的值在允许范围内,则进行步骤127。
步骤127:加载对应角色的用户界面配置数据。在角色的值处于允许范围内时,加载对应角色的用户界面配置数据,实现对应角色的用户界面显示。
在其中一个实施例中,步骤127包括步骤1至步骤3。
步骤1:读取当前角色,并根据当前角色加载导航栏数据数组,并获取与导航栏数据数组对应的字符串数组。
根据当前角色组合所要加载导航栏数据数组的名字,如"navigation_role"+role+"_array",具体的组成形式不限。在arrays资源中查找所组合的名字对应的字符串数组。具体可采用java的反映机制进行查找。如果找不到对应的字符串数组,则还可包括输出提醒信息,如抛出“NoSuchFieldException”,以提醒用户异常。
步骤2:计算字符串数组的元素个数,并根据元素个数得到用户界面的工作区总页数。
得到相应的字符串数组后,计算字符串数组元素个数N,从而可设置用户界面工作区总共页数为元素个数N。由于导航栏的每一项对应是用户界面工作区显示的每一页的。通过以上设计可以做到只是更改资源文件array.xml对应数组元素个数就可以控制用户界面工作区显示页数,而不用去更改Java的代码,提高操作便利性。
步骤3:根据工作区总页数分别导入当前角色所对应的导航栏数据,并加载用户界面的工作区数据。
可利用导航栏控件根据所得到的元素个数N动态生成相应个数的子视图。动态生成子视图的过程中可以设置子视图的字体大小,颜色,选中样式等预设属性。用户同样可利用遥控器移动切换选择焦点来控制子视图切换,如让导航栏第一个子视图获取选择焦点,智能电视在启动时工作区就会显示第一页的数据。对导航栏的选择焦点进行监听,当导航栏的选择焦点变化时将切换对应的页上去,实现子视图切换。
本实施例中工作区采用网格式设计。网格区域内分成M*N的网格,区域内用自定义控件填充,自定义控件的大小、位置都基于最小网格单元,以便于设计和维护时控制控件的大小和位置,提高操作便利性。可自定义一个类ItemInfo(物品查询)来记录加载时每一个自定义控件的信息,其中包含成员变量如表1所示。
成员名 | 成员介绍 |
cellX | 控件在网格区域的横坐标 |
cellY | 控件在网格区域的纵坐标 |
spanX | 控件在网格区域横向所占的格子数 |
spanY | 控件在网格区域纵向所占的格子数 |
screen | 控件所在页面的序号,可以有多页UI,通过导航栏切换 |
view_ref | ItemInfo所关联自定义控件的对象 |
intent | 控件被点击后程序跳转的对象及传递的参数 |
表1
具体可利用线程来加载工作区数据,通过重写线程的运行方法读取当前角色,具体的读取步骤与步骤122至步骤125类似,在此不做赘述。
进一步地,步骤3中加载用户界面的工作区数据,具体包括步骤32至步骤35。
步骤32:根据当前角色加载相应的工作区数据配置文件。本实施例中工作区数据配置文件使用xml的格式保存,其内容由自定义控件及其属性设置组成。自定义控件有很多自定义属性。表2所示是一实施例中自定义控件的部分属性。
属性名 | 属性介绍 |
x | 控件在网格区域的横坐标 |
y | 控件在网格区域的纵坐标 |
spanX | 控件在网格区域横向所占的格子数 |
spanY | 控件在网格区域纵向所占的格子数 |
screen | 控件所在页面的序号,可以有多页UI,通过导航栏切换 |
background | 控件背景图片 |
frontImg | 控件前景图片 |
titleText | 控件前景文字 |
uri | 控件按下后跳转的URI字串,可以定义控件按键功能 |
表2
步骤33:解析工作区数据配置文件,获取自定义控件对应的属性集合。自定义控件可以是一个也可以是多个,每一个自定义控件可对应获取一个属性集合。可通过XmlResourceParser类对工作区数据配置文件进行解析,具体可包括以下步骤:
判断最开始标签是否是workspace,如果是继续下一步,否则跳出。
判断下一个标签是不是workspace的结束标签,如果是则结束解析,否则继续下一步。
判断下一个标签是不是所有预存的自定义控件的标签中的一种。如果是其中一种,获取配置文件对应此自定义控件所设置的属性集合A。
步骤34:从属性集合中获取自定义控件的配置属性,并根据配置属性生成对应的控件。配置属性的具体内容可根据实际情况选择,本实施例中从属性集合A中获取自定义控件的坐标、大小、所在页等属性赋予ItemInfo类的成员或成员方法。根据得到的配置属性可生成具体的控件。
步骤35:将生成的控件导入用户界面的工作区内对应的网格区域。将生成的控件导入工作区内指定的网格区域,实现用户界面的工作区数据加载。
此外,步骤35之后,还可包括判断是否还存在下一控件的步骤,若是,则返回步骤34,加载下一控件,若否,则解析完成。
自定义控件具体可以是actionbutton(动作按钮)控件、appgrid(应用程序方格)控件或天气预报控件等。为便于更好地理解用户界面的工作区数据加载的具体实施方式,下面以actionbutton控件和appgrid控件为例,实例化自定义控件进行详细解释说明。
如果解析得到的自定义控件的标签是actionbutton动作按钮。则实例化一个自定义控件CellActionButton对象。此自定义控件构造函数加载用户界面的工作区数据的步骤分解后可包括步骤a至步骤c。
步骤a:设置自定义控件的背景图片。具体包括步骤411至步骤415。
步骤411:从属性集合A中获取背景图片的资源ID。
步骤412:判断背景图片的资源ID是否不为-1,如果成立则在自定义控件内添加一个ImageView作为背景图片。如果为-1,则认为没有背景图片,跳出。
步骤413:根据属性集合A的海报类型判断是否是影视海报,若是,则从属性集合A中获取海报图片缓存路径。如果不是则跳转到步骤415。
步骤414:如果图片缓存路径下的图片存在,则读取图片,并设其为此控件的背景图片,返回步骤412。如图片不存在继续到下一步。
步骤415:设属性中背景图片的资源ID所对应的图片为此控件的背景图片。
步骤b:设置自定义控件的前景图片。具体包括步骤421至步骤426。
步骤421:从属性集合A中获取前景图片的资源ID:。
步骤422:判断前景图片的资源ID是否不为-1,如果成立则在自定控件内添加一个ImageView作为前景图片。如果为-1则认为没有前景图片,跳出。
步骤423:将前景图片的资源ID所对应的图片作为自定义控件的前景图片。
步骤424:设置前景图片在自定义控件中的对齐方式。从属性集合A中获取控件前景图片在控件中的对齐方式,如果属性集合中没有设定则默认为左上角的对齐方式。
步骤425:设置前景图片在自定义控件中的边距。从属性集合A中获取控件前景图片在控件中上、下、左、右边距的值,如果属性集合中没有设定则默认为0。
步骤426:设置前景图片高和宽。从属性集合A中获取控件前景图片宽和高,如果属性集合中没有设定则保持图片原尺寸。
步骤c:设置自定义控件的前景文字。具体包括步骤431至步骤436。
步骤431:从属性集合A中获取前景文字的资源ID。
步骤432:判断前景文字的资源ID是否不为-1,如果成立则在自定控件内添加一个TextView(文本框)作为前景文字。如果为-1则认为没有前景文字,跳出。
步骤433:设属性中前景文字的资源ID所对应的字符串为自定义控件的前景文字内容。
步骤434:设置前景文字在控件中的对齐方式。从属性集合A中获取控件前景文字在控件中的对齐方式,如果属性集合中没有设定则默认为右下角的对齐方式。
步骤435:设置前景文字在控件中边距。从属性集合A中获取控件前景图片在控件中上、下、左、右边距的值,如果属性集合中没有设定则使用默认值。
步骤436:设置前景文字的宽和高,字体大小,字体颜色等。类似地,先从属性集合A中获取,获取不到则用预先设定默认值。
自定义控件中其他组件的设置方式相似,都是先判断这组件是否有设定,如果没有就跳过,判断下一个组件。如果有再去设定组件的详细设定。详细设定方面先从属性集合A中获取,获取不到就用预先设定默认值。按以上步骤设计自定义控件,兼容强且不会太冗余,占用内存少。
如果解析得到的自定义控件标签是appgrid。则实例化一个自定义控件CellGridView对象。此自定义控件是专门针对应用设计的,主要用于应用的显示和管理。此自定义控件构造函数加载用户界面的工作区数据的步骤包括步骤511至步骤515。
步骤511:设定自定义控件所属角色。从属性集合A中获取控件所属角色,如果属性中没有设定就用当前运行的角色代替。因为不同角色有自己的应用列表,有的角色如专业角色是可以管理其他角色的应用的列表,比如把某一应用从一个角色移动到另一个角色的应用列表中。
步骤512:设定自定义控件显示的行数。从属性集合A中获取控件显示的行数,如果没有设定则默认为3行。
步骤513:设定自定义控件显示的列数。从属性集合A中获取控件显示的列数,如果没有设定就默认为5列。
步骤514:设定自定义控件子视图的宽和高。从属性集合A中获取控件子视图的宽和高,如果没有设定则用默认值。
步骤515:设置自定义控件的数据适配器,根据所属角色加载对应角色的应用列表。具体可开辟一个线程来根据所属角色加载对应角色的应用列表。
自定义控件子视图的其他属性设置方式类似,在此不再赘述。
在其中一个实施例中,步骤35中将生成的控件导入用户界面的工作区内对应的网格区域的步骤,包括步骤351至步骤355。
步骤351:从属性集合A中获取URI(Uniform Resource Identifier,统一资源标识符)字符串,再从URI字符串解析出Intent所需的跳转行为和参数,再赋予ItemInfo对象的intent成员。这样就定义好了自定义控件点击后的行为。
步骤352:用View.generateViewId()方法自动生成id,作为实例化的自定义控件的id。
步骤353:将实例化的自定义控件与ItemInfo的对象的view_ref成员相关联。
步骤354:若解析得到的自定义控件标签是actionbutton,并且从属性集合A获取到的海报类型不为空,则从属性集合A获取海报其它属性。为便于理解,实例化一个自定义线程任务类进行解释说明:
设置海报类型。从属性集合A获取海报类型,海报类型分影视类和应用类等。
设置海报类型数据接口网址。线程将从数据接口网址获取海报图片网址、海报详情等信息
设置海报本地缓存地址。
记录本自定义控件的id。以便于后续更新海报图片。
设置海报的intent参数。当海报图片切换后,intent参数也跟着变化,确保点击后跳转至对应的海报。
步骤355:将自定义控件添加到工作区内对应的网格区域中。
具体地,根据ItemInfo对象中表示自定义控件的坐标,大小,所在页的成员方法来设定自定义控件在工作区中位置及大小。把ItemInfo对象所关联的自定义控件添加到工作区中。如果ItemInfo对象的成员intent不为空,则表示这个自定义控件点击后可以跳转,监听此自定义控件。
此外,步骤355后,可返回步骤351构成循环,一直到解析结束。处理过程中加载一个自定义控件就显示一个,可加快用户界面的显示速度,提高使用便利性。
在其中一个实施例中,上述步骤3中加载用户界面的工作区数据,还包括利用线程处理任务队列的任务的步骤,具体包括步骤37和步骤38。
步骤37:判断任务队列是否为空。如果不为空则获取任务,并提取任务参数;如果为空则结束线程。
步骤38:从任务中获取海报类型。可通过java的反射机制调用对应海报加载流程。步骤38具体包括步骤381至步骤387。
步骤381:判断网络连接是否正常,如果异常则结束线程。如果正常,则进行步骤382。
步骤382:获取任务的参数。如获取海报接口地址、图片缓存地址、海报的Intent参数、海报类型参数、海报的序号等。
步骤383:从海报接口地址获取JSON(JavaScript Object Notation,JavaScript对象符号)数据。
步骤384:通过Gson解析第一JSON数据,并反序列为相应的海报类。
步骤385:从本地缓存中读取第二JSON数据,并反序列为相应的海报类。
步骤386:比较第一JSON数据和第二JSON数据的更新时间,如果更新时间不同,则更新本地缓存内的数据,并标记为需要从网上更新本地缓存的海报图片。如果更新时间相同则标记为不需要更新本地缓存。若需要更新本地缓存内的数据,则具体可更新海报类成员:海报图片、海报详情和海报跳转的Intent值等。
步骤387:更新用户界面的海报图片。具体可用主线程的身份去更新用户界面中海报图片、海报详情等。
步骤S140:结束用户界面的桌面启动器应用,回收上一角色运行所占内存。在调用切换角色页面进行显示时,结束桌面启动器应用以回收上一角色运行所占内存,最大消耗内存是消耗内存最多的角色所占用的内存。
步骤S150:接收角色选择指令,并根据角色选择指令选择当前角色。
用户同样可通过遥控器发送角色选择指令至智能电视,利用遥控器控制用户界面的选择焦点移动,从而选定当前角色。当前角色可以是与上一角色相同,也可以是与上一角色不同的新角色。
步骤S160:保存当前角色,并根据当前角色重新加载用户界面。保存当前角色的步骤具体可包括以下步骤:保存当前角色的值到内存中角色变量中;保存当前角色的值到SharedPreferences中的角色变量中,并重复步骤122至步骤125。根据当前角色重新加载用户界面的具体方式与步骤127类似,在此不再赘述。
上述用户界面显示方法,由于可进行多角色的切换,不同人群可以选择自己喜欢用户界面风格,可满足不同人群的需求,提高使用便利性。引入多角色的概念,不同人群可以选择自己喜欢的用户界面风格,多角色用户界面的差异不是简单换个皮肤而已,用户界面的页数、内容都可以根据用户喜好进行调整,提高适用性。把用户界面资源和代码逻辑分开,新增一个角色只要新增一份配置文件即可。代码可延展性强,也方便后续维护,提高操作便利性。
利用上述方法,就算有几十个角色,有几十种用户界面风格,内存消耗也只会占用一个角色占用的内在空间。桌面启动器最大消耗内存是消耗内存最多的角色所占用的内存。这与传统的非多角色桌面启动器所占内存是差不多的。在切换角色时将上一角色所占用的资源全部释放掉,做到了用户界面多角色切换不增加内存的效果,降低了生产成本。
一种用户界面显示系统,具体可应用于智能电视、触控屏手机或平板电脑等设备的界面显示,为便于理解,以下均以智能电视的用户界面显示为例进行解释说明。如图4所示,用户界面显示系统包括切换指令接收模块130、应用内存回收模块140、选择指令接收模块150和角色保存加载模块160。
切换指令接收模块130用于接收角色切换指令后调用切换角色页面进行显示。用户具体可通过按下遥控器上的角色键发送角色切换指令至智能电视,控制智能电视的用户界面跳转到切换角色页面进行显示。
在其中一个实施例中,如图5所示,用户界面显示系统还包括数据初始化模块110和配置数据加载模块120。
数据初始化模块110用于在切换指令接收模块130接收角色切换指令后调用切换角色页面进行显示之前,进行数据初始化处理。可以是在应用启动时通过重写onCreate()来初始化数据。具体地,本实施例中进行数据初始化处理包括设置桌面启动器的上下文目录、应用数据库初始化、壁纸设置、顶部状态栏初始化、导航栏初始化、工作区初始化和任务队列初始化中的至少一种。上下文目录是指桌面启动器的框架布局,框架布局包含ImageView的焦点框和LinearLayout,如图3所示,LinearLayout包括顶部状态栏、导航栏、工作区的布局。
配置数据加载模块120用于在切换指令接收模块130接收角色切换指令后调用切换角色页面进行显示之前,加载用户界面配置数据。具体可通过重写onResume()的方法加载用户界面配置数据。在其中一个实施例中,配置数据加载模块120包括读取单元、第一判断单元、第一处理单元、第二处理单元、第二判断单元和加载单元。
读取单元用于读取当前内存中角色的值。。角色的值用一个整型变量表示,具体用Android的SharedPreferences(轻量级存储类)储存方式进行保存,可保存在智能电视的FLASH存储器中。
第一判断单元,用于判断当前内存中角色的值是否为预设的默认值。因为角色的值使用比较频繁,所以在内存中用一个变量来保存,本实施例中变量的默认值为-1。
第一处理单元,用于在当前内存中角色的值为默认值时,则从轻量级存储类中获取预先保存的角色的值。如果当前内存中角色的值为-1,则从SharedPreferences中获取所保存的角色的值。如果获取不到则返回-1,如果当前角色的值小于0,即为-1的默认值时,则认为首次启动这个应用,跳转到切换角色的页面。
第二处理单元,用于在当前内存中角色的值不是默认值时,则获取当前内存中角色的值。如果当前内存中角色的值不为-1,则可直接返回当前内存中角色的值,将当前内存中的值作为角色的值。
第二判断单元,用于判断获取的角色的值是否在预设的允许范围内。允许范围可根据实际情况调整。
加载单元,用于在获取的角色的值在允许范围内时,加载对应角色的用户界面配置数据。在角色的值处于允许范围内时,加载对应角色的用户界面配置数据,实现对应角色的用户界面显示。
在其中一个实施例中,加载单元包括第一单元、第二单元和第三单元。
第一单元用于在在获取的角色的值在允许范围内时,读取当前角色,并根据当前角色加载导航栏数据数组,并获取与导航栏数据数组对应的字符串数组。
根据当前角色组合所要加载导航栏数据数组的名字,如"navigation_role"+role+"_array",具体的组成形式不限。在arrays资源中查找所组合的名字对应的字符串数组。具体可采用java的反映机制进行查找。如果找不到对应的字符串数组,则还可输出提醒信息,如抛出“NoSuchFieldException”,以提醒用户异常。
第二单元用于计算字符串数组的元素个数,并根据元素个数得到用户界面的工作区总页数。
得到相应的字符串数组后,计算字符串数组元素个数N,从而可设置用户界面工作区总共页数为元素个数N。由于导航栏的每一项对应是用户界面工作区显示的每一页的。通过以上设计可以做到只是更改资源文件array.xml对应数组元素个数就可以控制用户界面工作区显示页数,而不用去更改Java的代码,提高操作便利性。
第三单元用于根据工作区总页数分别导入当前角色所对应的导航栏数据,并加载用户界面的工作区数据。
可利用导航栏控件根据所得到的元素个数N动态生成相应个数的子视图。动态生成子视图的过程中可以设置子视图的字体大小,颜色,选中样式等预设属性。用户同样可利用遥控器移动切换选择焦点来控制子视图切换,如让导航栏第一个子视图获取选择焦点,智能电视在启动时工作区就会显示第一页的数据。对导航栏的选择焦点进行监听,当导航栏的选择焦点变化时将切换对应的页上去,实现子视图切换。
本实施例中工作区采用网格式设计。网格区域内分成M*N的网格,区域内用自定义控件填充,自定义控件的大小、位置都基于这个最小网格单元,以便于设计和维护时控制控件的大小和位置,提高操作便利性。具体可利用线程来加载工作区数据,通过重写线程的运行方法读取当前角色。
进一步地,第三单元加载用户界面的工作区数据,具体为:根据当前角色加载相应的工作区数据配置文件;解析工作区数据配置文件,获取自定义控件对应的属性集合;从属性集合中获取自定义控件的配置属性,并根据配置属性生成对应的控件;将生成的控件导入用户界面的工作区内对应的网格区域。具体实施方式在上文步骤32至步骤35中进行了详细的解释说明,在此不再赘述。
自定义控件具体可以是actionbutton(动作按钮)控件、appgrid(应用程序方格)控件或天气预报控件等。以actionbutton控件和appgrid控件为例,实例化自定义控件的具体实施例在上述用户界面显示方法中进行了详细的解释说明,在此不再赘述。
在其中一个实施例中,第三单元加载用户界面的工作区数据,还可包括利用线程处理任务队列的任务,具体实施方式在上述用户界面显示方法中进行了详细的解释说明,在此不再赘述。
应用内存回收模块140用于结束用户界面的桌面启动器应用,回收上一角色运行所占内存。在调用切换角色页面进行显示时,结束桌面启动器应用以回收上一角色运行所占内存,最大消耗内存是消耗内存最多的角色所占用的内存。
选择指令接收模块150用于接收角色选择指令,并根据角色选择指令选择当前角色。用户同样可通过遥控器发送角色选择指令至智能电视,利用遥控器控制用户界面的选择焦点移动,从而选定当前角色。当前角色可以是与上一角色相同,也可以是与上一角色不同的新角色。
角色保存加载模块160用于保存当前角色,并根据当前角色重新加载用户界面。保存当前角色,以及根据当前角色重新加载用户界面的具体方式在上文步骤S160中进行了解释说明,在此不再赘述。
上述用户界面显示系统,由于可进行多角色的切换,不同人群可以选择自己喜欢用户界面风格,可满足不同人群的需求,提高使用便利性。引入多角色的概念,不同人群可以选择自己喜欢的用户界面风格,多角色用户界面的差异不是简单换个皮肤而已,用户界面的页数、内容都可以根据用户喜好进行调整,提高适用性。把用户界面资源和代码逻辑分开,新增一个角色只要新增一份配置文件即可。代码可延展性强,也方便后续维护,提高操作便利性。
利用上述系统,就算有几十个角色,有几十种用户界面风格,内存消耗也只会占用一个角色占用的内在空间。桌面启动器最大消耗内存是消耗内存最多的角色所占用的内存。这与传统的非多角色桌面启动器所占内存是差不多的。在切换角色时将上一角色所占用的资源全部释放掉,做到了用户界面多角色切换不增加内存的效果,降低了生产成本。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种用户界面显示方法,其特征在于,包括以下步骤:
接收角色切换指令后调用切换角色页面进行显示;
结束用户界面的桌面启动器应用,回收上一角色运行所占内存;
接收角色选择指令,并根据所述角色选择指令选择当前角色;
保存所述当前角色,并根据所述当前角色重新加载所述用户界面。
2.根据权利要求1所述的用户界面显示方法,其特征在于,所述接收角色切换指令后调用切换角色页面进行显示的步骤之前,还包括以下步骤:
进行数据初始化处理;
加载用户界面配置数据。
3.根据权利要求2所述的用户界面显示方法,其特征在于,所述进行数据初始化处理,包括设置桌面启动器的上下文目录、应用数据库初始化、壁纸设置、顶部状态栏初始化、导航栏初始化、工作区初始化和任务队列初始化中的至少一种。
4.根据权利要求2所述的用户界面显示方法,其特征在于,所述加载用户界面配置数据的步骤,包括以下步骤:
读取当前内存中角色的值;
判断当前内存中角色的值是否为预设的默认值;
若当前内存中角色的值为所述默认值,则从轻量级存储类中获取预先保存的角色的值;
若当前内存中角色的值不是所述默认值,则获取当前内存中角色的值;
判断获取的角色的值是否在预设的允许范围内;
若是,则加载对应角色的用户界面配置数据。
5.根据权利要求4所述的用户界面显示方法,其特征在于,所述加载对应角色的用户界面配置数据的步骤,包括以下步骤:
读取当前角色,并根据所述当前角色加载导航栏数据数组,并获取与所述导航栏数据数组对应的字符串数组;
计算所述字符串数组的元素个数,并根据所述元素个数得到所述用户界面的工作区总页数;
根据所述工作区总页数分别导入所述当前角色所对应的导航栏数据,并加载所述用户界面的工作区数据。
6.根据权利要求5所述的用户界面显示方法,其特征在于,所述加载所述用户界面的工作区数据的步骤,包括以下步骤:
根据所述当前角色加载相应的工作区数据配置文件;
解析所述工作区数据配置文件,获取自定义控件对应的属性集合;
从所述属性集合中获取自定义控件的配置属性,并根据所述配置属性生成对应的控件;
将生成的控件导入所述用户界面的工作区内对应的网格区域。
7.一种用户界面显示系统,其特征在于,包括:
切换指令接收模块,用于接收角色切换指令后调用切换角色页面进行显示;
应用内存回收模块,用于结束用户界面的桌面启动器应用,回收上一角色运行所占内存;
选择指令接收模块,用于接收角色选择指令,并根据所述角色选择指令选择当前角色;
角色保存加载模块,用于保存所述当前角色,并根据所述当前角色重新加载所述用户界面。
8.根据权利要求7所述的用户界面显示系统,其特征在于,还包括:
数据初始化模块,用于在所述切换指令接收模块接收角色切换指令后调用切换角色页面进行显示之前,进行数据初始化处理;
配置数据加载模块,用于在所述切换指令接收模块接收角色切换指令后调用切换角色页面进行显示之前,加载用户界面配置数据。
9.根据权利要求8所述的用户界面显示系统,其特征在于,所述配置数据加载模块包括:
读取单元,用于读取当前内存中角色的值;
第一判断单元,用于判断当前内存中角色的值是否为预设的默认值;
第一处理单元,用于在当前内存中角色的值为所述默认值时,则从轻量级存储类中获取预先保存的角色的值;
第二处理单元,用于在当前内存中角色的值不是所述默认值时,则获取当前内存中角色的值;
第二判断单元,用于判断获取的角色的值是否在预设的允许范围内;
加载单元,用于在获取的角色的值在允许范围内时,加载对应角色的用户界面配置数据。
10.根据权利要求9所述的用户界面显示系统,其特征在于,所述加载单元包括:
第一单元,用于在在获取的角色的值在允许范围内时,读取当前角色,并根据所述当前角色加载导航栏数据数组,并获取与所述导航栏数据数组对应的字符串数组;
第二单元,用于计算所述字符串数组的元素个数,并根据所述元素个数得到所述用户界面的工作区总页数;
第三单元,用于根据所述工作区总页数分别导入所述当前角色所对应的导航栏数据,并加载所述用户界面的工作区数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510221818.0A CN106201155B (zh) | 2015-04-30 | 2015-04-30 | 用户界面显示方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510221818.0A CN106201155B (zh) | 2015-04-30 | 2015-04-30 | 用户界面显示方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106201155A true CN106201155A (zh) | 2016-12-07 |
CN106201155B CN106201155B (zh) | 2019-09-17 |
Family
ID=57458708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510221818.0A Active CN106201155B (zh) | 2015-04-30 | 2015-04-30 | 用户界面显示方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106201155B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108763311A (zh) * | 2018-04-24 | 2018-11-06 | 广州视源电子科技股份有限公司 | 界面显示方法、装置、智能交互平板及存储介质 |
CN108874412A (zh) * | 2017-05-16 | 2018-11-23 | 北京海鲸科技有限公司 | 用于更新界面布局的方法、装置、设备及系统 |
CN109144505A (zh) * | 2018-06-25 | 2019-01-04 | 阿里巴巴集团控股有限公司 | Android页面的展示方法和装置 |
CN109240684A (zh) * | 2017-06-29 | 2019-01-18 | 武汉斗鱼网络科技有限公司 | 一种页面业务逻辑实现方法及系统 |
CN112394952A (zh) * | 2020-11-17 | 2021-02-23 | 珠海迈科智能科技股份有限公司 | 基于Hybrid App动态生成Launcher的方法和系统、存储介质 |
CN112449227A (zh) * | 2020-10-26 | 2021-03-05 | 广州视源电子科技股份有限公司 | 触屏应用兼容遥控器操作的交互方法、装置、智能电视以及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513342A (en) * | 1993-12-28 | 1996-04-30 | International Business Machines Corporation | Display window layout system that automatically accommodates changes in display resolution, font size and national language |
CN101155277A (zh) * | 2006-09-27 | 2008-04-02 | 深圳Tcl新技术有限公司 | 一种电视机多操作模式的设置方法及具有多操作模式的电视机 |
CN103077014A (zh) * | 2012-12-25 | 2013-05-01 | 深圳Tcl新技术有限公司 | 基于界面生命周期回收图片的方法和装置 |
CN104540030A (zh) * | 2015-01-26 | 2015-04-22 | 北京奇艺世纪科技有限公司 | 一种导航界面显示方法及装置 |
-
2015
- 2015-04-30 CN CN201510221818.0A patent/CN106201155B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5513342A (en) * | 1993-12-28 | 1996-04-30 | International Business Machines Corporation | Display window layout system that automatically accommodates changes in display resolution, font size and national language |
CN101155277A (zh) * | 2006-09-27 | 2008-04-02 | 深圳Tcl新技术有限公司 | 一种电视机多操作模式的设置方法及具有多操作模式的电视机 |
CN103077014A (zh) * | 2012-12-25 | 2013-05-01 | 深圳Tcl新技术有限公司 | 基于界面生命周期回收图片的方法和装置 |
CN104540030A (zh) * | 2015-01-26 | 2015-04-22 | 北京奇艺世纪科技有限公司 | 一种导航界面显示方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874412A (zh) * | 2017-05-16 | 2018-11-23 | 北京海鲸科技有限公司 | 用于更新界面布局的方法、装置、设备及系统 |
CN109240684A (zh) * | 2017-06-29 | 2019-01-18 | 武汉斗鱼网络科技有限公司 | 一种页面业务逻辑实现方法及系统 |
CN108763311A (zh) * | 2018-04-24 | 2018-11-06 | 广州视源电子科技股份有限公司 | 界面显示方法、装置、智能交互平板及存储介质 |
CN109144505A (zh) * | 2018-06-25 | 2019-01-04 | 阿里巴巴集团控股有限公司 | Android页面的展示方法和装置 |
CN112449227A (zh) * | 2020-10-26 | 2021-03-05 | 广州视源电子科技股份有限公司 | 触屏应用兼容遥控器操作的交互方法、装置、智能电视以及存储介质 |
CN112394952A (zh) * | 2020-11-17 | 2021-02-23 | 珠海迈科智能科技股份有限公司 | 基于Hybrid App动态生成Launcher的方法和系统、存储介质 |
CN112394952B (zh) * | 2020-11-17 | 2023-11-17 | 珠海迈科智能科技股份有限公司 | 基于Hybrid App动态生成Launcher的方法和系统、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106201155B (zh) | 2019-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106201155A (zh) | 用户界面显示方法和系统 | |
US8510096B2 (en) | Method and device for selecting interface language of software | |
CN102043630A (zh) | 一种生成框架内多页面的方法及系统 | |
CN101533350B (zh) | 一种页面快速切换方法、装置和注塑机系统 | |
CN103258038A (zh) | 一种浏览器和网页之间的显示模式同步方法及其装置 | |
CN102752655A (zh) | 一种电子节目菜单的显示方法 | |
CN105677265A (zh) | 一种显示方法及终端 | |
CN106155692A (zh) | 一种终端亮度调节方法及终端 | |
CN101639759A (zh) | 动态调整导航菜单的方法及其系统 | |
CN101261545A (zh) | 一种终端设备及其输入法 | |
CN103135879A (zh) | 显示方法、显示装置和电子设备 | |
CN106325687A (zh) | 一种调用程序的方法及终端 | |
CN106792199A (zh) | 电视功能的快捷启动设置方法及装置 | |
CN103472972A (zh) | 一种移动终端的文本显示格式设置装置及方法、移动终端 | |
CN103313130A (zh) | 电视机、快速进入电视机中应用程序的系统及方法 | |
CN103561347A (zh) | 一种基于浏览器的快捷菜单生成方法和装置 | |
CN111045561A (zh) | 功能按键的显示方法、装置、终端设备及存储介质 | |
CN103324661A (zh) | 一种基于用户习惯的数据搜索与自动填充方法及系统 | |
US20170094500A1 (en) | Subscriber identity module card managing method and electronic device | |
CN103561289A (zh) | 一种界面配置方法及装置 | |
CN101377922A (zh) | Osd产生和显示方法 | |
CN103648047A (zh) | 智能电视资源搜索方法及系统 | |
CN106020635A (zh) | 信号源显示方法和系统 | |
CN101132494B (zh) | 一种将电视机切换到学习模式下的方法、系统及设备 | |
CN111836095A (zh) | 一种tv端循环显示节目的方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20191009 Address after: 518000 9th Floor, D4 Building, International E City, 1001 Zhongshan Garden Road, Xili Street, Nanshan District, Shenzhen City, Guangdong Province Patentee after: Shenzhen TCL New Technology Co., Ltd. Address before: 516006 Guangdong province Huizhou spring-wind Zhongkai high tech Development Zone Four Road No. 78 Patentee before: TCL Optoelectronic Technology (Huizhou) Co., Ltd. |
|
TR01 | Transfer of patent right |