一种界面视图的生成方法及图形菜单的操作方法与流程

文档序号:20092248发布日期:2020-03-13 07:06阅读:217来源:国知局
一种界面视图的生成方法及图形菜单的操作方法与流程

本发明涉及一种界面视图的生成方法及图形菜单的操作方法。



背景技术:

当前包括智能手机在内的移动终端等电子设备是人们日常生活和工作中必不可或缺工具。通过在智能手机中安装应用程序(app,以下简称为应用),可以增强手机使用功能,为用户提供更丰富的使用体验。对于手机中安装的应用,可以在手机的屏幕上显示图形菜单,用户可以通过点击、长按等动作操作图形菜单使用应用功能。

当应用存在大量的图形菜单时,在现有技术中,通常采用分层级、分页方式展现功能图标。如果用户想要操作某个应用图标,则需要先执行一系列操作从不同层级或页中找到目标功能图标,然后通过点击或长按等功作操作功能图标。存在的问题是,要么选择目标功能图标过程繁琐,要么图形菜单布满整个屏幕,最终表现在人机交互性能和体验较差。



技术实现要素:

(一)要解决的技术问题

为了解决现有技术的上述问题,本发明提供一种界面视图的生成方法及图形菜单的操作方法。

(二)技术方案

为了达到上述目的,本发明采用的主要技术方案包括:

一种界面视图的生成方法,所述界面视图为图形界面的视图类,所述图形界面包括m个图形菜单,包括:

获取所有具有界面标示符的图形界面;

其中,所述界面标示符为:一组预设个数为s个的图形菜单标示符;

将所述所有具有界面标示符的图形界面集中的加载到界面视图库中;

接收操作指令,通过界面标示符从界面视图库中获取与所述指令相应的图形界面,并将所述图形界面以界面视图显示。

优选的,接收操作指令,通过界面标示符从界面视图库中获取与所述指令相应图形界面,具体包括:

接收第一操作指令,根据第一统计数据获取各图形菜单在图形界面周期内初始的图形界面中被操作的概率,得到数组p[m];

其中,p[m]={p1,p2,...pk...,pm},0<k≤m,其中,pk表示标示符为k的图形菜单在图形界面周期内初始的图形界面中被操作的概率;

基于数组p[m],获取与所述概率中数值依次由大到小排列顺序中的前s个数值对应的图形菜单标示符,并将所述s个图形菜单标示符作为在图形界面周期内初始的图形界面的界面标示符;其中,所述s为预先设定值;

从所述界面视图库中选择与所述图形界面周期内初始的图形界面的界面标示符相应的图形界面作为初始界面。

优选的,接收操作指令,通过界面标示符从界面视图库中获取与所述指令相应的界面视图,具体包括:

接收第二操作指令,根据第二统计数据获取各图形菜单在图形界面周期内与所述第二操作指令相关联的图形界面中被操作的概率,得到数组p2[m];

其中,p2[m]={p21,p22,...p2k...,p2m},0<k≤m,其中,p2k表示标示符为k的图形菜单在图形界面周期内与所述第二操作指令相关联的图形界面中被操作的概率;

基于数组p2[m],获取与所述概率中数值依次由大到小排列顺序中的前s个数值对应的图形菜单标示符,并将所述s个图形菜单标示符作为在图形界面周期内与所述第二操作指令相关联的图形界面的界面标示符;其中,所述s为预先设定值;

从所述界面视图库中选择与所述图形界面周期内与所述第二操作指令相关联的图形界面的界面标示符相应的图形界面作为工作界面。

优选的,所述图形界面包括的m个图形菜单的标示符为1到m。

优选的,

所述第一统计数据为:标示符为1到m的图形菜单中的其中标示符为i的图形菜单在图形界面周期内初始的图形界面中被操作的次数的统计值;

所述第二统计数据为:在图形界面周期内标示符为1到m的图形菜单中的标示符为i的图形菜单被操作后紧邻的标示符为k的图形菜单被操作的次数的统计值。

优选的,所述图形界面周期为预先设定周期。

一种界面视图中图形菜单的操作方法,所述图形菜单存在于由上述任一所述的方法生成的界面视图中,包括:

在接收用户在初始界面中任一标示符为i图形菜单的第一视图的以点击形式的触摸指令的情况下,响应所述指令,并执行包括:

将所述标示符为i图形菜单的第一统计数据增加一个统计单位值;

获取与所述标示符为i图形菜单关联的工作界面;

其中,所述图形菜单i的第一统计数据为:标示符为i的图形菜单在初始界面中被操作的次数的统计值;

其中,所述图形菜单的第一视图为:存在于界面视图中的图形菜单的视图;

在接收用户在工作界面界面中标示符为k的图形菜单的第一视图的以点击形式的触摸指令的情况下,响应所述指令,并执行包括:

将所述标示符为i的图形菜单的第二统计数据增加一个统计单位值;

获取与所述标示符为k图形菜单关联的工作界面;

其中,所述标示符为k的图形菜单为:标示符为i的图形菜单被操作后,紧邻的被操作的图形菜单;

其中,所述标示符为i的图形菜单的第二统计数据为:标示符为i的图形菜单在初始界面或工作界面中被操作后紧邻的标示符为k的图形菜单被操作的次数的统计值;

在接收用户在初始界面或工作界面中以滑动接触形式的触摸指令的情况下,生成与所述触摸指令相关的图形菜单的第二视图。

优选的,所述生成与所述触摸指令相关的图形菜单的第二视图,具体包括:

获取以滑动接触形式的触摸指令的屏幕触点与各图形菜单第一视图的距离;

基于所述触摸指令的屏幕触点与各图形菜单第一视图的距离中依次由小到大排列顺序中的前n个距离值,得到n个与所述距离值相应的图形菜单的第一视图;其中,所述n为预先设定值;

采用克隆和/或构造方法基于所述n个图形菜单的第一视图生成n个所述图形菜单的第二视图;并在第一位置预设条件下显示所述n个图形菜单的第二视图;

其中,所述第一位置为于所述获取的获取以滑动接触形式的触摸指令的屏幕触点的位置预先设定距离;

其中,所述预设条件为:在没有触摸指令的情况下的预设时间t。

优选的,还包括:

在接收用户在包含所述n个图形菜单的第二视图中任一标示符为k的图形菜单第二视图的以点击形式的触摸指令或以大于预设速度δ滑到所述标示符为k的图形菜单第二视图的形式的触摸指令的情况下,响应所述指令,并执行包括:

将所述标示符为i的图形菜单的第二统计数据增加一个统计单位值;

获取与所述标示符为i图形菜单关联的工作界面。

(三)有益效果

本发明的有益效果是:本发明通过预测图形菜单在初始界面或工作界面被操作的概率,从界面视图库中获取具有待被操作概率大的图形菜单的界面视图,部分解决了用户在图形菜单选择过程繁琐和显示区域过大问题,达到了改善人机交互性能和体验的目标。

附图说明

图1为本发明的标签结构;

图2为本发明实施例中初始界面;

图3为本发明实施例中工作界面;

图4为本发明实施例中用户手指与触摸屏幕的触点到各图形菜单的距离示意图;

图5a、图5b以及图5c均为为本发明实施例中的图形菜单的第二视图显示在用户手指与触摸屏幕的触点附近的形态;

图6为本发明中的一种界面视图的生成方法。

【附图标记说明】

p:用户与触摸屏幕的触点。

具体实施方式

为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。

本实施例中,本发明的方法在android环境下具体实现,其中,本实施例中预先设定:图形界面中存在9个图形菜单,既m为9;图形界面用3个标示符标示,既s为3;用户手指在屏幕上滑动时,产生3个第二视图,既n为3。

本实施例中的图形菜单视图类

本实施例,通过继承android.widget.imageview定义一个名为imc的视图类,它是实现9个图形菜单之视图类的超类,imc具有以下属性:

(1)高度,h,纪录其第一视图或第二视图视的高度,第一视图和第二视图均为imc对象。

(2)宽度,w,纪录其第一视图或第二视图视的宽度。

(3)位置l(left,top),纪录第一视图或第二视图在界面视图中的左上角位置/坐标。

(4)背景,b,任意完全透明的视图。

(5)图标,i,一种文字或图像,方便用户辨别图形菜单。

(6)层次,z,在界面视图中的层级代码,与android相关,通过改变此值可改变视图与视图之间的覆盖关系。

通过继承imc定义9个名为imc1、imc2、imc3、imc4、imc5、imc6、imc7、imc8、imc9的视图类,依次为图形菜单1到图形菜单9的类定义,称为菜单视图类。

在本实施例的后续的说明中,用imc#i表示第i个图形菜单对应的类,用imc#i表示imc#i对象和第一视图,用_imc#i表示imc#i对象和第二视图,其中,1≤i≤9,imc#i表达形式源自于c++的定义宏的表达形式。

上述9个菜单视图类具有以下属性:

图形菜单标示符,id,static和final成员,imc1中置为1,imc2中置为2,依此类推。

第一统计数据d0,static成员,纪录在初始界面中被操作的次数,初始化成1。

第二统计数据dm,static成员,一个大小为9的数组,第i个数组项dm[i]纪录第i个图形菜单作为后置菜单出现的次数,初始化成1。

在本实施例中,在初始界面中操作图形菜单i时,菜单i的第一统计数据d0增加一个统计值,所述统计值可以是常量1或其它值,且所述图形菜单i称为先导菜单。

在工作界面中操作图形菜单k时,如果所述工作界面是图形菜单i的关联工作界面,则图形菜单i的图形界面周期内操作图形菜单i后相邻的操作图形菜单k的次数的统计值dm(k)增加一个统计值,所述图形菜单i称为所述图形菜单k的前置菜单,所述图形菜单k称为图形菜单i的后置菜单。

上述9个菜单视图类包含以下方法:

(1)生成方法,maker(inti1,inti2,inti3),用于生成三种规格的对象,即小尺寸对象(so)、一般尺寸对象(mo)和大尺寸对象(lo),且小尺寸对象so、一般尺寸对象mo和大尺寸对象lo通过newimc运算产生。i1、i2和i3均为0时生成大尺寸对象lo。可定义其它形式的maker生成其它规格的imc对象。make(0,0,0)生成大尺寸对象lo。

(2)预测方法,forecasting,用第二统计数据dm预测用户下一次最有可能操作的3个图形菜单,返回3个图形菜单标示符(界面标示符)。

(3)装入方法,loading,static成员,用于装入第一统计数据d0和第二统计数据dm;

(4)存储方法,saving,static成员,用于将第一统计数据d0和第二统计数据dm保存在存储器中;

本实施例中,一个图形菜单用一个菜单视图类表达,9个图形菜单用9个图形菜单类表达。第一视图和第二视图是菜单视图类的对象,由同一菜单视图类创建的第一视图和第二视图具有相同的图形菜单标示符,操作同一份第一统计数据d0和第二统计数据dm数据,执行相同的菜单功能。

本实施例中初始化第一统计数据d0和第二统计数据dm的方法

应用程序调用菜单视图类的loading和saving加载和存储第一统计数据d0和第二统计数据dm。

本实施例中图形界面的视图类

本实施例,通过继承android.widget.framelayout定义一个名为guic的视图类,guic用于表达图形界面,在描述上等同于图形界面,guic的对象为界面视图。

guic包含以下类属性成员:

(1)界面标示符,index[3],大小为3的数组,每个数据项的值是一个从1到9这9个自然数选3个自然数的组合,如index={1,2,3};界面标示符的字面值定义为3个数据项值的连接,即{1,2,3}的字面值为字符串“123”,称为标示符字符串,常用标示符字符串生成配置文件名。

(2)imc1,imc1,第1个图形菜单的第一视图,

(3)imc2,imc2,第2个图形菜单的第一视图,

(4)imc3,imc3,第3个图形菜单的第一视图,

(5)imc4,imc4,第4个图形菜单的第一视图,

(6)imc5,imc5,第5个图形菜单的第一视图,

(7)imc6,imc6,第6个图形菜单的第一视图,

(8)imc7,imc7,第7个图形菜单的第一视图,

(9)imc8,imc8,第8个图形菜单的第一视图,

(10)imc9,imc9,第9个图形菜单的第一视图,

(11)imc1,_imc1,第1个图形菜单的第二视图,

(12)imc2,_imc2,第2个图形菜单的第二视图,

(13)imc3,_imc3,第3个图形菜单的第二视图,

(14)imc4,_imc4,第4个图形菜单的第二视图,

(15)imc5,_imc5,第5个图形菜单的第二视图,

(16)imc6,_imc6,第6个图形菜单的第二视图,

(17)imc7,_imc7,第7个图形菜单的第二视图,

(18)imc8,_imc8,第8个图形菜单的第二视图,

(19)imc9,_imc9,第9个图形菜单的第二视图,

guic包含以下类方法成员:

(1)guic(inti,intj,intk},构造器,其中,i、j和k是界面标示符的三个数据项。

(2)indextostring(),将界面标示符转换标示符字符串。

在另一种实现中,第二视图不内置于guic中,而是在运行中动态生成并显示在悬浮窗口中。

本实施例中界面视图的配置文件的创建与解析

当m为9,s为时3时,其组合数p(9,3)=84,可得84个有效界面标示符,将产生84个ugic对象,相应地存在84个配置文件,配置文件用界面标示符作文件名。

一个界面标示符t{i,j,k}认为是有效的,表示当前不存在其它由i、j和k构成的界面标示符。

本实施例中,任一配置文件,如359.guic,包含9组表示为e(l,t,z)的三元数据,第i组三元数据中的l和t定义了第i的图形菜单的第一视图在标示符{3,5,9}所对应的界面视图中的位置,z值用作addview(viewchild,intz)的第二参数决定第一视图在界面视图中子视图次序。z是一整数值,且0≤z<9,9个三元数据项的z值互不相同。

在另一种实施方式中,配置文件,如359.guic,包含9组表示为e(l,t,w,h,z)的五元数据,用于调用方法addview(viewchild,intw,inth,intz)将第一视图加入到界面视图中,其中,w和h是第一视图的宽度和高度。

如图2所示,展示了一个配置文件的格式和样本数据。

本实施例中,配置文件作为断言资源在开发阶段创建,在apk的安装过程中将这些文件安装在电子设备的文件系统中,后述的访问配置文件均指访问存在于文件系统中的配置文件。

在另一种本实施方式中,配置文件的内容以某种形式(如多维数组)组织在应用程序中获得同样的使用效果。

在另一种本实施方式中,配置文件的内容通过网络下载到应用程序中获得同样的使用效果。

创建界面视图时,打开文件,依次读出每一行或三元组数据,解析出imcid和{l,t,z},其中,imcid是图形菜单标示符,取值为[1,9]范围内的整数,

本实施例中生成界面视图的方法为:

本实施例中,当m为9和s为3时,存在84个有效标示符,用{t}表示,对{t}中每一成员t(i,j,k),采用以下流程生成对应的界面视图,即生成由{i,j,k}标示的界面视图:

(1)生成界面视图guic,guic=newguic(i,j,k)。

(2)根据i、j和k找到对应用的配置文件ijk.guic,取出文件中的9个imcid和对应的三元数据项e(l,t,z),生成9个图形菜单的第一视图,并依据imcid的值赋给对应的mic1、mic2、...、mic9。

且mic1通过mic1.maker(i,j,k)生成,mic2通过imc2.maker(i,j,k)生成,依次类推。

且,当maker发现其所属图形菜单类的id等于i或等于j或等于k时返回一般规格的类对象(mo),否则返回小规格的类对象(so)。

(3)使用方法addview(imc,k)将9个第一视图按其对应的z值从小到大的顺序加入到guic中,imc是上述9个第一视图之一的第一视图。

(4)对上述9个第一视图的每一个第一视图,获取其在guic中布局参数lp,lp是一个framelayout.layoutparams对象,lp.leftmargin置为l,lp.topmargin置为t,调用setlayoutparams(lp)方法。

(5)生成guic中9个第二视图_imc#i,_mic1通过mic1.maker(0,0,0)生成,_mic2通过imc2.maker(0,0,0)生成,依次类推。调用addview(_imc#i)将_imc#i加入到guic中,其中1<=i<=9。将_imc#i置为不可见状态(invisible)。

上述过程完成后,可以获得一个guic其在触摸屏幕上的显示效果如附图3所示。

本实施例生成界面视图库的方法为:

本实施例中,引用一个v,v=hashmap<string,guic>()中,其中,v的key值是一个界面标示符,v的value值为一guic(界面视图/guic对象)。

在本实施例上述生成界面视图步骤中创建的84个界面视图装入到v。

v是界面视图库的一种简单实现。

本实施例中v由第一应用程序创建,从而第一应用程序可访问v,通过界面标示符可查询指定的guic是否存在,或从v中获取由界面标示符指定的guic。其它组件,如果存在,可通过第一应用程序可访问v。

本实施例的操作

在本实施例中,当第一应用程序进入使用图形界面的应用场景时,视为进入形图界面使用状态。

进入形图界面使用状态后,所有84个界面视图已生成并在于v中。

进入形图界面使用状态后,所有图形菜单的操作历史数据处理于可用状态,既imc1、imc2、...、imc9的静态成员第一统计数据d0和第二统计数据dm已完成初始化。

用ad0表示9个第一统计数据d0值,ad0[i]是第i个imc#i的第一统计数据d0值,ad0[i]是在初始界面中操作imc#i的次数。这里,当i=1时,imc#i为imc1,当i=2时,imc#i为imc2,依次类推。

用adm表示9个第二统计数据dm值,adm[i]是第i个imc#i的第二统计数据dm值,adm[i][j]表示连接操作imc#i和imc#j的次数。

引入ad0和adm仅为方便表达对第一统计数据d0和第二统计数据dm的计算过程。

本实施例中初始界面生成与操作步骤为:

本实施例中,用imc#i的第一统计数据d0作为第i个图形菜单在初始界面中的操作概率,第一统计数据d0越大表示被操作的概率越大。即计算图形菜单在初始界面的操作概率就是读取第一统计数据d0的过程。

第一应用程序进入所述应用场景时,产生一个程序事件e1,响应此事件执行第一选择操作的操作步骤:

找出在初始界面中操作几率最大的3(s为3)个第一视图。对ad0中的9个数据项按其值的降序进行排序,得到排在1、2和3位的数据项,分别ad0[i]、ad0[j]和ad0[k],相应的,imc#i、imc#j和imc#k为三个操作几率最大的第一视图。

利用i、j和k作界面标示符,从v中取出界面视图guic,此guic为初始界面。

所述初始界面显示在移动终端的触摸屏幕上后,用户点击之上的第一视图,如imc2,产生事件e2,响应事件e2,ad0[2]加1或imc2.d0加1,执行imc2功能属性所指示的程序功能,生成关联于imc2的工作界面。

在另一种实现中,可能实现成将初始界面关联于一个虚拟图形菜单。

如图2所示一个可能存在的初始界面。

本实施例中工作界面生成与操作方法为:

本实施例中,用imc#i的第一统计数据d0的第k个数据项dm[k]作为第k个图形菜单在关联于imc#i的工作界面中的操作概率,dm[k]越大表示被操作的概率越大。既计算图形菜单k在工作界面的操作几率是读取其dm[k]的过程。

运行时用户点击初始界面或工作界面上任一第一视图imc#x,如imc2,产生屏幕事件e2,响应此事件执行如下在权力要求中所述第二选择操作的操作步骤:

(1)找出关联于imc#x的工作界面中操作几率最大的3(s为3)个第一视图。对imc#x.dm中的9个数据(dm[1]、dm[2]、...、dm[9])按其值的降序进行排序,得到排在1、2和3位的数据项,分别adm[i]、dm[j]和dm[k],相应的,imc#i、imc#j和imc#k为三个操作几率最大的第一视图。

(2)用i、j和k作界面标示符,从v中取出界面视图guic,此guic为工作界面,是关联于imc#x的工作界面;

所述关联于imc#x的工作界面显示在电子设备的触摸屏幕上;用户点击之上的第一视图,如imc4,产生事件e2,响应事件e2,adm[#x][4]加1或imc#x.dm[4]加1,执行imc4功能属性所指示的程序功能,生成关联于imc4的工作界面。

如图3所示,展示一种可能存在的工作界面。

本实施例中的滑动操作处理

本实施例中所述坐标或坐标值均基于界面视图的视图坐标系,如附图4所示,原点在界面视图的左上角,横轴为u从左到右,纵轴为v从上到下。

在本实施例中,当用户手指在初始界面或工作界面guic上滑动时,产生事件e3,响应事件e3进行以下步骤处理:

(1)利用guic的方法ontouchevent获得触摸点的坐标p(u,v)。

(2)以及界面中9个第一视图中心的坐标分别为p1(u1,v1)、p2(u2,v2)、...、p9(u9,v9)。第一视图imc#i中心点坐标c(u,v)用以下公式计算:

u=l+(l+w)/2;

v=t+(t+h)/2;

上式中,w和h是第一视图imc#i的宽度和高度,l和t是第一视图imc#i左上角u轴和v轴的坐标值。

(3)用以下公式计算p到p1、p2、...、p9的距离,

公式中,u和v是p点坐标值,ui和vi是第一视图imc#i中心点的坐标值,di是p点到imc#i中心点的距离,其中,p点为用户与触摸屏幕的触点。

从d1、d2、...、d9中选出最小的3个值(因为本实施例中设定n为3),分别为dx,dy和dz,其中x、y和z分别是第一视图imc#x、imc#y和imc#z的id属性值。

如附图4所示,录像菜单第二视图10、缩放菜单第二视图20和焦点菜单第二视图30到p点的距离最短,所述x、y和z分别是图形菜单标示符1、2和3,对应的第一视图分别是guic中的imc1、imc2和imc3。

根据图形菜单标示符x、y和z创建imc#x、imc#y和imc#z的第二视图,分别记为_imc#x、_imc#y和_imc#z。如图4所示,第二视图分别是guic中的_imc1、_imc2和_imc3。

(4)调整_imc#x、_imc#y和_imc#z在guic中的布局参数,获得如图5所示的布局效果。

附图5中所示的布局是可计算的。本实施例中s为3且每个第二视图是大小相同且边长为r(r为预置值)的正方形(前景为园形图标,背景透明),实现所述布局的基本原理为:(a)以p点为中心构建一个6边形,6边形中的边长为r;(b)从每个边的端点引线到p点,得到6个三角形,选择三个在gui中完全可见或基本可见且相邻的三角形,计算出所述三个中选区域(三角形)的所述边线中点在gui中的坐标,分别为x(u,v)、y(u,v)和z(u,v)。(c)将_imc#x置为可见并重新设置布局参数使其中心点坐标为x(u,v),将_imc#y置为可见并重新设置布局参数使其中心点坐标为y(u,v),将_imc#z置为可见并重新设置布局参数使其中心点坐标为z(u,v)。

(5)如果用户手指离开屏幕,_imc#x、_imc#y和_imc#z保持可见状态t秒,t秒后将_imc#x、_imc#y和_imc#z置为不可见状态。

(6)当前用户手指从触点p(u,v)滑动到p(u1,v1),当移动距离小于α(常量,像素点个数,)时,本实施例中不做任何处理,当移动距离在于α时,执行上述步骤1-4。

(7)当用户手指离开屏幕在t秒内点击第二视图时,如_imc#z,产生屏幕事件e2,按本实施例中工作界面生成与操作方法处理响应e2。

(8)可选的,当用户手指从触点p(u,v)滑动时,在滑动的速度大于δ(常数,)间期,产生屏幕事件e2,按本实施例中工作界面生成与操作方法中所述处理响应e2。手指滑动速度通过android提供的getxvelocity和getxvelocity应用程序接口获取。

(9)当用户手指从触点p(u,v)以大于δ的速度滑动时,如果第一个低于δ的滑点落在某个第二视图时,产生屏幕事件e2,按本实施例中工作界面生成与操作方法处理响应e2。

(10)当用户手指从触点p(u,v)以大于δ的速度滑动时,如果第一个低于δ的滑点没有落在任一第二视图,执行上述步骤1-4。

以上结合具体实施例描述了本发明的技术原理,这些描述只是为了解释本发明的原理,不能以任何方式解释为对本发明保护范围的限制。基于此处解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本明的保护范围之内。

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