发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种智能终端的桌面元素调整方法和装置。
依据本发明的一个方面,提供了一种智能终端的桌面元素调整方法,所述桌面元素包括:图标和微件,其中,所述方法包括:
在当前虚拟屏幕上拖拽第一指定位置上的第一桌面元素时,将该第一指定位置之后的图标向前补齐;
当所述第一桌面元素被拖拽到第二指定位置并被放开时,将从该第二指定位置开始到最后位置的图标放入数据表中;
如果该第二指定位置上的第二桌面元素为图标,将所述第一桌面元素放置到该第二指定位置上,然后将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置;否则该第二指定位置上的第二桌面元素为微件,将该微件后移,并将所述第一桌面元素放置到该第二指定位置上,然后将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置。
可选地,所述将从该第二指定位置开始到最后位置的图标放入数据表中包括:
从该第二指定位置开始,按照从左到右、从上到下的顺序将图标从当前虚拟屏幕摘除并存入数据表中,并记录这些图标的原始位置。
可选地,所述将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置包括:
从所述第二指定位置开始,按照从左到右、从上到下的顺序查找与数据表中的图标数量相等数量的空闲位置,如果当前虚拟屏幕上的空闲位置数量不够,则插入一个新的虚拟屏幕,将查找到的空闲位置按照顺序一一对应地作为数据表中的各图标的目标位置;
将数据表中的各图标放置到其对应的目标位置上,并且在显示层面显示各图标从原始位置移动到目标位置的动画。
可选地,所述将该微件后移进一步包括:
A、将该微件作为当前微件;
B、保存当前微件的初始位置;
C、判断当前微件是否可以向右移动,是则执行步骤D,否则执行步骤E;
D、确定向右移动当前微件并保存当前微件要移动的目标位置,执行步骤F;
E、确定向下移动当前微件,如果当前虚拟屏幕不能放下当前微件,则插入一个新的虚拟屏幕,保存当前微件要移动的目标位置,执行步骤F;
F、判断当前微件的目标位置是否有其他微件,是则执行步骤G,否则执行步骤H;
G、将所述其他微件作为当前微件返回步骤B,
H、对于遍历过的每个当前微件,将其从初始位置移动到目标位置,并在显示层面显示各微件从初始位置移动到目标位置的动画。
可选地,该方法进一步包括:
当需要在虚拟屏幕上放置一个新生成的微件时,从当前虚拟屏幕的左上角开始,按照从上到下从左到右的顺序检测能够满足所述新生成的微件的宽度和高度的空闲区域;
如果检测到满足条件的空闲区域,则将新生成的微件放置到该区域,否则插入一个新的虚拟屏幕放置该新生成的微件。
根据本发明的另一方面,提供了一种智能终端的桌面元素调整装置,所述桌面元素包括:图标和微件,其中,所述装置包括:存储单元、检测单元和桌面元素调整单元;
所述存储单元,适于保存数据表;
所述检测单元,适于在当前虚拟屏幕上拖拽第一指定位置上的第一桌面元素时,向所述桌面元素调整单元发送第一通知;以及适于当所述第一桌面元素被拖拽到第二指定位置并被放开时,向桌面元素调整单元发送第二通知;
所述桌面元素调整单元,适于在收到所述第一通知时,将该第一指定位置之后的图标向前补齐;以及适于在收到所述第二通知时,将从该第二指定位置开始到最后位置的图标放入数据表中;如果该第二指定位置上的第二桌面元素为图标,将所述第一桌面元素放置到该第二指定位置上,然后将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置;否则该第二指定位置上的第二桌面元素为微件,将该微件后移,并将所述第一桌面元素放置到该第二指定位置上,然后将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置。
可选地,所述桌面元素调整单元,适于从该第二指定位置开始,按照从左到右、从上到下的顺序将图标从当前虚拟屏幕摘除并存入数据表中,并记录这些图标的原始位置。
可选地,所述桌面元素调整单元,适于从所述第二指定位置开始,按照从左到右、从上到下的顺序查找与数据表中的图标数量相等数量的空闲位置,如果当前虚拟屏幕上的空闲位置数量不够,则插入一个新的虚拟屏幕,将查找到的空闲位置按照顺序一一对应地作为数据表中的各图标的目标位置;将数据表中的各图标放置到其对应的目标位置上,并且在显示层面显示各图标从原始位置移动到目标位置的动画。
可选地,所述桌面元素调整单元适于按照以下步骤向后移动该微件:
A、将该微件作为当前微件;
B、保存当前微件的初始位置;
C、判断当前微件是否可以向右移动,是则执行步骤D,否则执行步骤E;
D、确定向右移动当前微件并保存当前微件要移动的目标位置,执行步骤F;
E、确定向下移动当前微件,如果当前虚拟屏幕不能放下当前微件,则插入一个新的虚拟屏幕,保存当前微件要移动的目标位置,执行步骤F;
F、判断当前微件的目标位置是否有其他微件,是则执行步骤G,否则执行步骤H;
G、将所述其他微件作为当前微件返回步骤B,
H、对于遍历过的每个当前微件,将其从初始位置移动到目标位置,并在显示层面显示各微件从初始位置移动到目标位置的动画。
可选地,该装置进一步包括:
新桌面元素放置单元,适于需要在虚拟屏幕上放置一个新生成的微件时,从当前虚拟屏幕的左上角开始,按照从上到下从左到右的顺序检测能够满足所述新生成的微件的宽度和高度的空闲区域;如果检测到满足条件的空闲区域,则将新生成的微件放置到该区域,否则插入一个新的虚拟屏幕放置该新生成的微件。
根据本发明一实施例:在当前虚拟屏幕上拖拽第一指定位置上的第一桌面元素时,将该第一指定位置之后的图标向前补齐;当所述第一桌面元素被拖拽到第二指定位置并被放开时,将从该第二指定位置开始到最后位置的图标放入数据表中;如果该第二指定位置上的第二桌面元素为图标,将所述第一桌面元素放置到该第二指定位置上,然后将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置;否则该第二指定位置上的第二桌面元素为微件,将该微件后移,并将所述第一桌面元素放置到该第二指定位置上,然后将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置的技术方案,使得桌面元素按顺序挤压,拖拽桌面上的一个元素,不会改变桌面上的图标的顺序,这种桌面元素挤压方式符合用户的预期,提高了智能终端的使用效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
背景技术中提到Android原生桌面的换位挤压方式超出了用户的理解,影响了智能终端的使用效率。因为在普通用户概念中,放置一个东西的主要是顺序挤压,而不是跨坑换位。基于这种思想提出了本发明。
对于触摸屏幕的智能终端(如手机,PAD等),用户通过触摸手势,左右划屏,可以看见若干个虚拟屏幕。每个虚拟屏幕,从技术上讲,是通过网格形式进行划分的,比如手机一般为4*4或6*5等等。这样一个虚拟屏幕可以划分成16或者30个网格区域,甚至更多,这取决于实际屏幕尺寸。
在每个虚拟屏幕上放置的桌面元素有:普通的程序图标以及微件(Widget)。Widget属于特殊的界面元素,占据着屏幕的1到多个网格区域(矩形区域),比如一般可能有1*1大小、2*1大小、或者4*1大小、4*2大小、或者4*4大小等等。而普通的程序图标属于一个应用程序(App),或者一个App的快捷方式,固定占据着1*1的大小,即图标只占据1个网格区域。
本申请的一个实施例是响应用户的桌面元素拖拽操作,并对这些屏幕和屏幕上的元素进行管理。当拖拽一个微件或者图标放置在屏幕的特定网格区域时,涉及到对该位置现存桌面元素的一个重新排版,可能会重新排版到网格的上、下、前、后等位置,这取决于该位置元素的尺寸(占据屏幕网格的多少),以及当前屏幕上元素的多少、附近元素的类型等等。
对于1*1的Widget,将其当作图标看待。对于图标,可以理解为水。水可以自由流动,即图标在排版时,按照自左向右、自上而下的顺序,寻找屏幕空位自动排版,图标在排版过程中,按照这个顺序保证前面不会留下空位的网格。对于微件,可以理解为石头,相对于图标,微件不会自动排版。微件在排版时,会自动根据屏幕位置,在附近找一个恰当的位置排版。对于新增微件,自左向右,自上而下,寻找屏幕空位自动排版。如果被微件或者图标挤压,则在就近网格区域寻找一个位置排版。
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种智能终端的桌面元素调整方法的流程图。在本申请中桌面元素包括:图标和微件。如图1所示,该方法包括:
步骤S110,在当前虚拟屏幕上拖拽第一指定位置上的第一桌面元素时,将该第一指定位置之后的图标向前补齐。
在本步骤中,当检测到用户拖拽当前虚拟屏幕上的第一指定位置上的第一桌面元素的操作时,将当前虚拟屏幕上的该第一指定位置之后的图标按顺序向前补齐。
该位于第一指定位置上的第一桌面元素可以是图标,也可以是微件。当该第一桌面元素被拖拽离开第一指定位置时,后面的图标会向前补齐,因此屏幕上的第一指定位置上不会出现空位。
步骤S120,当所述第一桌面元素被拖拽到第二指定位置并被放开时,将从该第二指定位置开始到最后位置的图标放入数据表中。
本步骤中,当检测到用户拖拽所述第一桌面元素到当前虚拟屏幕的第二指定位置的操作时,将当前虚拟屏幕上的从该第二指定位置开始到最后位置的图标按照顺序放入数据表中。然后根据第二指定位置上的第二桌面元素是图标还是微件,选择执行步骤S130或步骤S140。
在本发明的一个实施例中,将从该第二指定位置开始到最后位置的图标放入数据表中可以为:从该第二指定位置开始,按照从左到右、从上到下的顺序将图标从当前虚拟屏幕摘除并存入数据表中,并记录这些图标的原始位置。
步骤S130,如果该第二指定位置上的第二桌面元素为图标,将所述第一桌面元素放置到该第二指定位置上,然后将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置。
步骤S140,否则该第二指定位置上的第二桌面元素为微件,将该微件后移,并将所述第一桌面元素放置到该第二指定位置上,然后将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置。
在本发明的一个实施例中,步骤S130和步骤S140中所述的将数据表中的图标从所述第二指定位置开始寻找空闲位置放置可以为:从所述第二指定位置开始,按照从左到右、从上到下的顺序查找与数据表中的图标数量相等数量的空闲位置,如果当前虚拟屏幕上的空闲位置数量不够,则插入一个新的虚拟屏幕,将查找到的空闲位置按照顺序一一对应地作为数据表中的各图标的目标位置。将数据表中的各图标放置到其对应的目标位置上,并且在显示层面显示各图标从原始位置移动到目标位置的动画。
在本发明的一个实施例中,在步骤S140中,当第二指定位置上的第二桌面元素为微件时,将该微件后移的具体方法如图2所示。
图2示出了根据本发明一个实施例的微件被挤压时该微件后移的流程图。如图2所示,包括:
步骤S201、将被挤压的微件作为当前微件;
步骤S202、保存当前微件的初始位置;
步骤S203、判断当前微件是否可以向右移动,是则执行步骤S204,否则执行步骤S205;
步骤S204、确定向右移动当前微件并保存当前微件要移动的目标位置,执行步骤S206;
步骤S205、确定向下移动当前微件,如果当前虚拟屏幕不能放下当前微件,则插入一个新的虚拟屏幕,保存当前微件要移动的目标位置,执行步骤S206;
步骤S206、判断当前微件的目标位置是否有其他微件,是则执行步骤S207,否则执行步骤S208;
步骤S207、将所述其他微件作为当前微件返回步骤S202,
步骤S208、对于遍历过的每个当前微件,将其从初始位置移动到目标位置,并在显示层面显示各微件从初始位置移动到目标位置的动画。
通过图2所示的方法,能够将被挤压的微件移动的一个恰当的位置。
在图1所示的方法中,被拖拽的第一桌面元素可以是图标,也可以是微件,被挤压的第二桌面元素可以是图标,也可以是微件。因此有四种情况:图标挤压图标、图标挤压微件、微件挤压图标、微件挤压微件。
以下对上述四种情况进行举例说明,为了方便进行说明,以如下的图3和图4为例进行说明。
图3示出了根据本发明一个实施例的具有5*4网格的屏幕示意图。参见图3,该屏幕的具有5*4=20个网格,分别编号为1~20。
图4示出了根据本发明一个实施例的具有5*4网格的屏幕上的初始桌面元素示意图。参见图4,该屏幕上有两个占用2*2网格的微件A1和B1,以及12个图标A~L。
1.图标挤压图标
这里以在图4所示的屏幕中用网格1位置上图标A挤压网格15上的图标为例进行说明。根据图1所示的方法,用户首先会拖拽图标A,此时图标A之后的图标会按顺序向前补齐,如图5所示。图5示出了图4中图标A被拖拽后的桌面元素变化示意图,参见图5,图标A之后的图标B~L按从左到右,从上到下的顺序依次向前补齐,网格1处不会出现空位,此时图标A还未被放下。
当图标A被拖拽到网格15处并被放开时,将从网格15开始到最后位置的图标放入数据表中,即将图标J、K和L放入数据列表中,将图标A放置到该网格15的位置上,然后将数据表中的图标J、K和L从网格15开始寻找空闲位置放置,最后屏幕上桌面元素的排列如图6所示。图6示出了图4中图标A被拖拽并放置到网格15处后的桌面元素排列示意图。
可见,在图标挤压图标的过程中,微件的位置是不变的。
2.图标挤压微件
这里以在图4所示屏幕中用户网格1位置处的图标A挤压网格13上的图标为例进行说明。根据图1所示的方法,用户首选会拖拽A,此时图标A之后的图标会按顺序向前补齐,如图5所示。
当图标A被拖拽到网格13处并被放开时,将从网格13开始到最后位置的图标放入数据表中,即将图标J、K和L放入数据列表中。由于网格13上的原桌面元素为微件B1,先将微件向右移动一个网格位置,将图标A放置到该网格13的位置上,然后将数据表中的图标J、K和L从网格13开始寻找空闲位置放置,最后屏幕上桌面元素的排列如图7所示。图7示出了图4中图标A被拖拽并放置到网格13处后的桌面元素排列示意图。
3.微件挤压图标
这里以图4所示屏幕中的微件A1被向下拖拽一个网格为例进行说明。根据图1所示的方法,用户首选会拖拽微件A1,此时微件A1之后的图标会按顺序向前补齐,如图8所示。图8示出了图4中微件A1被拖拽后的桌面元素变化示意图,参见图8,微件A1之后的图标C~L按从左到右,从上到下的顺序依次向前补齐,此时微件A1还未被放下。
当微件A1被拖拽到网格7、8、11和12所构成的2*2网格区域处并被放开时,将从网格7开始到最后位置的图标放入数据表中,即将图标G~L放入数据列表中。将微件A1放置由网格7、8、11和12所构成的2*2网格区域处,然后将数据表中的图标G~L从网格9开始寻找空闲位置放置,最后屏幕上桌面元素的排列如图9所示。图9示出了图4中微件A1被向下拖拽一个网格并放置后的桌面元素排列示意图。
4.微件挤压微件
这里以图4所示屏幕中的微件A1挤压文件B1为例进行说明。根据图1所示的方法,用户首选会拖拽微件A1,此时微件A1之后的图标会按顺序向前补齐,如图8所示。
当微件A1被拖拽到网格13、14、17和18所构成的2*2网格区域处并被放开时,由于网格13、14、17和18所构成的2*2网格区域处的原桌面元素为微件B1,先将微件B1向右移动两个网格位置,将微件A1放置到该网格13、14、17和18所构成的2*2网格区域处上,最后屏幕上桌面元素的排列如图10所示。图10示出了图4中微件A1挤压微件B1后的桌面元素排列示意图。
在本发明的一个实施例中,当需要在虚拟屏幕上放置一个新生成的微件时,从当前虚拟屏幕的左上角开始,按照从上到下从左到右的顺序检测能够满足该新生成的微件的宽度和高度的空闲区域;如果检测到满足条件的空闲区域,则将新生成的微件放置到该区域,否则插入一个新的虚拟屏幕放置该新生成的微件。
图11示出了本发明实施例中的一种智能终端的桌面元素调整装置的结构图。这里所述的桌面元素包括:图标和微件,则如图11所示,该智能终端的桌面元素调整装置1000包括:检测单元1010、桌面元素调整单元1020和存储单元1030;其中:
存储单元1030,适于保存数据表;
检测单元1010,适于在当前虚拟屏幕上拖拽第一指定位置上的第一桌面元素时,向所述桌面元素调整单元1020发送第一通知;以及适于当所述第一桌面元素被拖拽到第二指定位置并被放开时,向桌面元素调整单元1020发送第二通知;
桌面元素调整单元1020,适于在收到所述第一通知时,将该第一指定位置之后的图标向前补齐;以及适于在收到所述第二通知时,将从该第二指定位置开始到最后位置的图标放入数据表中;如果该第二指定位置上的第二桌面元素为图标,将所述第一桌面元素放置到该第二指定位置上,然后将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置;否则该第二指定位置上的第二桌面元素为微件,将该微件后移,并将所述第一桌面元素放置到该第二指定位置上,然后将所述数据表中的图标从所述第二指定位置开始寻找空闲位置放置。
在本发明的一个实施例中,桌面元素调整单元1020,适于从该第二指定位置开始,按照从左到右、从上到下的顺序将图标从当前虚拟屏幕摘除并存入数据表中,并记录这些图标的原始位置。
在本发明的一个实施例中,桌面元素调整单元1020,适于从所述第二指定位置开始,按照从左到右、从上到下的顺序查找与数据表中的图标数量相等数量的空闲位置,如果当前虚拟屏幕上的空闲位置数量不够,则插入一个新的虚拟屏幕,将查找到的空闲位置按照顺序一一对应地作为数据表中的各图标的目标位置;将数据表中的各图标放置到其对应的目标位置上,并且在显示层面显示各图标从原始位置移动到目标位置的动画。
桌面元素调整单元1020适于按照以下步骤向后移动该微件:
A、将该微件作为当前微件;
B、保存当前微件的初始位置;
C、判断当前微件是否可以向右移动,是则执行步骤D,否则执行步骤E;
D、确定向右移动当前微件并保存当前微件要移动的目标位置,执行步骤F;
E、确定向下移动当前微件,如果当前虚拟屏幕不能放下当前微件,则插入一个新的虚拟屏幕,保存当前微件要移动的目标位置,执行步骤F;
F、判断当前微件的目标位置是否有其他微件,是则执行步骤G,否则执行步骤H;
G、将所述其他微件作为当前微件返回步骤B,
H、对于遍历过的每个当前微件,将其从初始位置移动到目标位置,并在显示层面显示各微件从初始位置移动到目标位置的动画。
在本发明的一个实施例中,该装置1000进一步包括:新桌面元素放置单元1040,适于需要在虚拟屏幕上放置一个新生成的微件时,从当前虚拟屏幕的左上角开始,按照从上到下从左到右的顺序检测能够满足所述新生成的微件的宽度和高度的空闲区域;如果检测到满足条件的空闲区域,则将新生成的微件放置到该区域,否则插入一个新的虚拟屏幕放置该新生成的微件。
对于图11所示的装置,被拖拽的第一桌面元素可以是图标,也可以是微件,被挤压的第二桌面元素可以是图标,也可以是微件。因此有四种情况:图标挤压图标、图标挤压微件、微件挤压图标、微件挤压微件。这四种情况的具体举例参见图3~图10的说明。
综上所述,本发明的这种技术方案,使得桌面元素按顺序挤压,拖拽桌面上的一个元素,不会改变桌面上的图标的顺序,这种桌面元素挤压方式符合用户的预期,提高了智能终端的使用效率。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的智能终端的桌面元素调整装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。