一种查找联系人的方法及终端设备
技术领域
本发明涉及查找方法,尤其涉及使用鱼眼(FishEye)查找联系人的方法及终端设备。
背景技术
鱼眼控件是UI设计中常用到的一种快速定位的UI界面控件。通过鱼眼控件,可以快速定位联系人。通过多级鱼眼,几次按键就可以定位到想要查找的联系人,查找效率较高。
查找中文联系人使用的鱼眼控件是对查找英文联系人使用的鱼眼控件的扩展,是通过汉语拼音方案来实现英文字母到汉字的映射。如图1所示,是所述方案的一个示例,鱼眼选单1位于界面底部的鱼眼显示区域,当用户在鱼眼选单上触摸或者滑动时,选中的拼音字母不同时,联系人列表也会同时进行更新,举例来说,如果选中的是一级鱼眼选单上的Z,就会列出所有姓氏以拼音Z开头的联系人,如曾、查、张等等。
基于汉语拼音的鱼眼控件存在以下问题:
第一、汉字数量很庞大,要求用户认识很多字的读音,对用户的文化程度要求很高,在全中国还是有很多人对于拼音是不熟悉的,有些用户不认识的生僻字不认识或者不能确定读音的汉字就无法使用汉语拼音的鱼眼控件。
第二、汉语拼音方案是中国大陆的方案,但是全世界使用汉字的不限于中国大陆,比如台湾地区有自己的注音方案。
第三、有些汉字的读音不是唯一的。对于某些姓氏有特殊的读音。而对于一个有序的列表,某一条记录的位置是必须唯一确定的。比如曾(zeng1)字只会出现在Z中,不可能将复制两份,在ceng处放一份在zeng处再放一份。如果有的人认为念ceng2,就找不到了。再比如单(shan4),仇(qiu2),区(ou1)等多音字也有同样的问题。
第四、汉字到拼音的映射不是一个均匀的映射,针对联系人的姓氏这种特殊情况,映射的不均匀性更集中。比如中国人姓的比较多的李,刘,罗,林,鲁,路,陆,郎,廖,龙等等,而有的英文字母比如A,就只有安等几个少数姓氏。这会导致如果按A,很快就找到姓安的。而要找L中的姓就要翻多页。所有的汉字输入法对于如何能够让更少的键找到要的字都费尽了心机,但是输入法可以使用联想之类的功能对于鱼眼是完全不适用的。简单移植现有技术行不通。
发明内容
本申请所要解决的技术是提供一种不懂拼音也能使用的查找联系人的方法及相应的终端设备。
为了解决上述技术问题,本申请提供了一种联系人查找的方法,应用于具有联系人查找功能的一终端设备,包括:
在联系人查找界面的一级鱼眼选单显示联系人的姓氏笔划数;
如检测到所述一级鱼眼选单中的一姓氏笔划数被选中,查找通讯录中姓氏笔划数等于选中姓氏笔划数的联系人;
在联系人列表显示区域显示查找出的联系人的信息。
较佳地,
查找出通讯录中姓氏笔划数等于选中姓氏笔划数的联系人之后,还包括:
如查找出的联系人的个数超过设定的第一阈值,动态显示二级鱼眼选单,在所述二级鱼眼选单中显示所述查找出的联系人的姓氏或姓氏部首;
如检测到所述二级鱼眼选单中的一姓氏或姓氏部首被选中,从所述查找出的联系人中筛选出具有选中姓氏或姓氏部首的联系人,并在所述联系人列表显示区域显示筛选出的联系人的信息。
较佳地,
筛选出具有选中姓氏或姓氏部首的联系人之后,还包括:
如筛选出的联系人的个数超过设定的第二阈值,动态显示三级鱼眼选单,在所述三级鱼眼选单中显示所述筛选出的联系人的人名第一个字;
如检测到所述三级鱼眼选单中的一个字被选中,从所述筛选出的联系人中再次筛选出人名第一个字等于选中的字的联系人,并在所述联系人列表显示区域显示再次筛选出的联系人的信息;
或者,
所述筛选出具有选中姓氏或姓氏部首的联系人之后,还包括:
如筛选出的联系人的个数超过设定的第二阈值,动态显示三级鱼眼选单,在所述三级鱼眼选单中显示所述筛选出的联系人的人名第一个字的笔划数;
如检测到所述三级鱼眼选单中的一个笔划数被选中,从所述筛选出的联系人中再次筛选出人名中第一个字的笔划数等于选中笔划数的联系人,并在所述联系人列表显示区域显示再次筛选出的联系人的信息。
较佳地,
所述查找通讯录中姓氏笔划数等于选中姓氏笔划数的联系人,包括:
从缓存的一临时数据表中查找姓氏笔划数等于选中姓氏笔划数的联系人,所述临时数据表包含所述通讯录中所有联系人的姓氏、人名及在各级鱼眼选单显示的信息,且按照姓氏笔划数对联系人排序。
较佳地,
所述一级鱼眼选单显示的姓氏笔划数是所述通讯录中姓氏笔划数的全集,或者是所有中文姓氏的姓氏笔划数的全集。
相应地,本申请还提供一种终端设备,包括显示模块、通讯录和联系人查找模块,其中:
所述显示模块,至少包括:
一级鱼眼显示单元,用于在联系人查找界面的一级鱼眼选单显示联系人的姓氏笔划数;
联系人显示单元,用于在联系人列表显示区域显示查找或筛选出的联系人的信息;
所述联系人查找模块包括:
查找单元,用于在获知所述一级鱼眼选单中的一姓氏笔划数被选中时,查找通讯录中姓氏笔划数等于选中姓氏笔划数的联系人,并将查找到的联系人的信息传送给所述显示模块显示;
所述通讯录,用于记录联系人的信息,包括联系人的姓氏、人名及各级鱼眼选单显示的信息。
较佳地,
所述联系人查找模块还包括:
第一判断单元,用于判断所述查找到的联系人的个数是否超过设定的第一阈值,如超过,通知所述显示模块动态显示二级鱼眼选单;
第一筛选单元,用于在获知所述二级鱼眼选单中的一姓氏或姓氏部首被选中时,从所述查找到的联系人中筛选出具有选中姓氏或姓氏部首的联系人,并将筛选出的联系人的信息传送给所述联系人显示单元显示;
所述显示模块还包括:
二级鱼眼显示单元,用于显示二级鱼眼选单,在所述二级鱼眼选单中显示所述查找到的联系人的姓氏或姓氏部首。
较佳地,
所述联系人查找模块还包括:
第二判断单元,用于判断所述筛选出的联系人的个数是否超过设定的第二阈值,如超过,通知所述显示模块动态显示三级鱼眼选单;
第二筛选单元,用于在获知所述三级鱼眼选单中的一个字或一个笔划数被选中时,从所述筛选出的联系人中再次筛选出联系人的人名第一个字等于选中的字的联系人,或者再次筛选出联系人的人名第一个字的笔划数等于选中笔划数的联系人,并将再次筛选出的联系人的信息传送给所述联系人显示单元显示;
所述显示模块还包括:
三级鱼眼显示单元,用于显示三级鱼眼选单,在所述三级鱼眼选单中显示所述筛选出的联系人的人名第一个字或人名第一个字的笔划数。
较佳地,
所述查找单元查找出通讯录中姓氏笔划数等于选中姓氏笔划数的联系人,包括:从缓存的一临时数据表中查找姓氏笔划数等于选中姓氏笔划数的联系人,所述临时数据表包含所述通讯录中所有联系人的姓氏、人名及在各级鱼眼选单显示的信息,且按照姓氏笔划数对联系人排序。
较佳地,
所述一级鱼眼显示单元在一级鱼眼选单显示的联系人的姓氏笔划数是从所述临时数据表中得到的姓氏笔划数的全集。
上述方案利用基于笔划的鱼眼控件对联系人进行查找,对于汉语拼音掌握不够熟练的用户,可以利用汉字笔划方便快捷地查找到联系人。此外,还提高了用户的查找准确率和效率,为用户提供了较好的使用体验。
附图说明
图1是鱼眼显示界面的示意图;。
图2是本申请实施例一的查找联系人的方法的流程图;
图3是本申请实施例二的终端设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在本申请一个典型的配置中,终端设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
针对汉语拼音鱼眼控件存在的问题,本申请提供一种基于笔划的鱼眼控件来实现对联系人的快速查找。拼音是汉字的一种编码方式,要求用户通过学习才能得到。二者之间没有本质的必然联系。而汉字是由笔划组成的图形,对于笔划是通用的。不管是哪个地区使用的汉字,都是用有限个数的几种笔划组成的。同时,采用笔划搜索优于拼音搜索的另一优点是从精确查找到模糊查找的进步。不管是拼音还是部首还是其他精确的编码,都是无序的,例如对于某个汉字,用户认为发音为zeng,而在Z中没找到,用户可能就不知道应所述在哪里查找了。而一个字的笔划,如果计算的不准确,用户只要在所述笔划数的附近移动一下就可以查找出来了。也就是说基于笔划进行查找不需要精确计算笔划数,只要知道是大概的笔划数,就可以进行模糊查找了,对于使用触摸方式的终端设备来说更加符合人体工程学的输入方法。同时基于笔划搜索也更符合对于有序记录进行二分查找的算法的思想。
实施例一
如图2所示,本实施例提供一种查找联系人的方法,应用于具有联系人查找功能的终端设备,终端设备可以是需要使用联系人通讯录的智能电子设备,如移动电话,电脑、Pad等。终端设备中可以保存有汉字数据库和联系人数据库。
本申请中,联系人的姓名是由姓氏和人名组成的。
所述方法包括:
步骤S101:在联系人查找界面的一级鱼眼选单中显示联系人的姓氏笔划数;
一级鱼眼选单中显示的姓氏笔划数可以是通讯录中姓氏笔划数的全集,也可以是所有中文姓氏的姓氏笔划数的全集。
在本实施例中,可以根据通讯录在缓存中创建一个临时数据表,当通讯录更新时,同步更新临时数据表。各级鱼眼选单中显示的信息以及联系人列表显示区域显示的联系人的信息可以是从临时数据表读取,以加快读取的速度。临时数据表包含通讯录中所有联系人的姓氏、人名及在各级鱼眼选单显示的信息,并且按照姓氏笔划数对联系人排序。
临时数据表可以采用树形结构,首先按照姓氏笔划数进行排序,对于姓氏笔划数相同的数据项可以按照二级鱼眼选单中的设置的信息内容进行排序,以此类推,再有相同的数据则可按照三级鱼眼选单中设置的信息内容进行排。当然,临时数据表各字段的排列顺序还以根据其它的排序规则进行操作。通过临时数据表进行数据筛选可以有效的缩短系统的数据查找时间,提高用户查找效率和使用体验,
在本步骤中可以在静态的鱼眼显示区域显示一级鱼眼选单,也可以动态显示一级鱼眼选单。
步骤S102:如检测到一级鱼眼选单中的一姓氏笔划数被选中,查找通讯录中姓氏笔划数等于选中姓氏笔划数的联系人;
当用户选中一级鱼眼选单中的某一姓氏笔划数时,则在临时数据表中查找出姓氏笔划数为选中姓氏笔划数的联系人的信息。
步骤S103:在联系人列表显示区域显示查找出的联系人的信息;
如果用户不能准确的知道姓氏笔划数,也可以通过触摸滑动或者按键查看相邻笔划数所对应的联系人的信息,使用户可以较为便捷的查找的目标联系人的信息。
步骤S104:判断所述查找到的联系人的个数是否超过设定的第一阈值,如果超过则执行步骤S105;否则结束本次联系人查找操作;
第一阈值为产生二级鱼眼选单的判定条件,步骤S102中查询到的联系人如果很多的话,全部列出来对于用户来说不方便选择,用户确定目标联系人就不够方便快捷,因此可以通过预设第一阈值,当步骤S102查出的联系人的个数大于第一阈值时,则自动产生二级鱼眼选单,这样可以缩小用户的判断范围,从而提高查找效率。
步骤S105:动态显示二级鱼眼选单,在所述二级鱼眼选单中显示所述查找出的联系人的姓氏部首;
二级鱼眼选单中显示的姓氏部首为步骤S102中筛选出的所有联系人的姓氏部首全集。
上述步骤S104、步骤S105与步骤S103的执行顺序可以变化,只要在步骤S102之后执行即可。
步骤S106:如检测到二级鱼眼选单中的姓氏部首被选中,从已查找到的联系人中筛选出具有选中姓氏部首的联系人,并在联系人列表显示区域显示筛选出的联系人的信息;
可选地,二级鱼眼选单中可以显示步骤S102查找到的联系人的姓氏。当用户选中二级鱼眼选单中的某一姓氏时,则在步骤S102中查找出的联系人中筛选出具有选中姓氏的联系人,并将筛选出的联系人的信息显示在联系人列表显示区域中。
步骤S107:判断所述筛选出的联系人的个数是否超过设定的第二阈值,如果超过则执行步骤S108;否则结束本次查找操作;
同第一阈值一样,可预先设置第二阈值。第二阈值是产生三级鱼眼选单的判定条件,如果根据二级鱼眼选单中选中的姓氏部首查找到的联系人较多时,同样需要继续分级显示查询结果,缩小用户的查询范围。因此通过预设第二阈值,判断是否需要产生三级鱼眼选单。
步骤S108:动态显示三级鱼眼选单,在所述三级鱼眼选单中显示所述筛选出的联系人的人名第一个字的笔划数;
本步骤可以将步骤S106筛选出的联系人的人名中第一个字的笔划数(指笔划数的全集)在三级鱼眼选单中显示出来。
步骤S109:如检测到所述三级鱼眼选单中的一笔划数被选中,在所述筛选出的所有联系人中,再次筛选出联系人的人名第一个字的笔划数等于选中笔划数的联系人,并在联系人列表显示区域显示再次筛选出的联系人。
可选地,三级鱼眼选单中显示的内容可以是联系人的人名第一个字,当用户选中三级鱼眼选单中的某一个字时,则在步骤S106筛选出的联系人中再次筛选出人名第一个字为选中的字的联系人,并将再次筛选出的联系人的信息显示在联系人列表显示区域。
需要说明的是,本实施例中也可以不使用临时数据表,直接从通讯录读取联系人的信息。
对于联系人姓氏以字符开头时,可以将所述联系人的姓氏笔划数设置为姓氏笔划数中的最大值或者最小值,将所述联系人的姓氏部首设置为特殊信息;如果联系人人名的一个字为字符,可以将所述联系人的人名第一个字的笔划数设置为某一最大值或者最小值。
对于复姓的联系人,可以将复姓中第一个字的笔划数作为所述联系人的姓氏笔划数,也可以将复姓中两个字的笔划数之和作为所述联系人的姓氏笔划数。当然对于联系人姓氏和人名中包含字符或者复姓的情况,也可以采用其他的规则进行系统设置。
此外,当二级鱼眼选单中显示的是联系人的姓氏时,通讯录和临时数据表中可以不设置姓氏部首字段。当三级鱼眼选单中显示的是联系人的人名第一个字时,通讯录和临时数据表中可以不设置人名第一个字的笔划数字段。
同时,对于本实施例中的各数据库和数据表的名称以及数据库和数据表中的字段的名称不做限定。
下面模拟具体场景对上述方案进一步描述,在所述场景中,第一阈值设置为5,第二阈值设置为5。其中:
如表1所示,通讯录中包括姓氏字段、人名字段、姓氏笔划数字段、姓氏部首字段、及人名第一个字的笔划数字段等。
姓氏 |
人名 |
姓氏笔划数 |
姓氏部首 |
人名中第一个字的笔划数 |
… |
李 |
玉 |
7 |
木 |
5 |
|
李 |
轩 |
7 |
木 |
7 |
|
刘 |
名 |
6 |
刂 |
6 |
|
刘 |
明 |
6 |
刂 |
8 |
|
刘 |
晓梅 |
6 |
刂 |
10 |
|
刘 |
梅 |
6 |
刂 |
11 |
|
刘 |
阳 |
6 |
刂 |
7 |
|
安 |
心 |
7 |
宀 |
4 |
|
安 |
树 |
7 |
宀 |
9 |
|
李 |
妮 |
7 |
木 |
8 |
|
李 |
老师 |
7 |
木 |
6 |
|
表1
上述姓氏笔划数、姓氏部首和人名第一个字的笔划数等信息可以根据姓氏、人名第一个字查找相应的汉字数据库得到,可以如根据汉字查找相应的拼音一样。
以表1中提供的联系人数据为例,当用户需要查找联系人“李玉”时,在联系人查找界面鱼眼显示区域自动显示一级鱼眼选单,并在联系人列表显示区域中显示出所有联系人姓名。即一级选单中显示的为“6、7”,联系人列表显示区域显示为“李玉、李轩、刘名、刘明、刘晓梅、刘梅、刘阳、安心、安树、李妮、李老师”。
当用户选中一级鱼眼选单中的笔画数“7”时,从当前数据中筛选出姓氏笔划为7的联系人信息,并在联系人列表选单中显示出筛选出的联系人的姓名。即联系人列表中显示为“李玉、李轩、安心、安树、李妮、李老师”。由于筛选出的联系人个数为6,大于第一阈值5,因此动态显示出二级鱼眼选单,在二级鱼眼选单中显示的是部首“木、宀”。
如果用户继续选中二级鱼眼中的部首“木”,则在上述查找出的联系人信息中继续查找出姓氏中以木为部首的联系人信息,同时将所述筛选出的联系人姓名显示在联系人列表显示区域中,即“李玉、李轩、李妮、李老师“。由于4条小于第二阈值5,因此不再动态显示三级鱼眼选单。
实施例二
本实施例提供上述实施例一对应的终端设备,如图3所示,所述终端设备包括显示模块11、通讯录12、联系人查找模块13,其中:
显示模块11包括:
一级鱼眼显示单元111,用于在联系人查找界面的一级鱼眼选单中显示联系人的姓氏笔划数;
联系人显示单元112,用于在联系人列表显示区域显示查找到或筛选出的联系人的信息。
通讯录12,用于记录联系人的信息,包括联系人的姓氏、人名及各级鱼眼选单显示的信息。
联系人查找模块13包括:
查找单元131,用于在获知一级鱼眼选单中的一姓氏笔划数被选中时,查找通讯哭中姓氏笔划数等于选中姓氏笔划数的联系人,并将查找到的联系人的信息传送给所述显示模块11显示。
较佳地,联系人查找单元13还包括:
第一判断单元132,用于判断查找到的联系人的个数是否超过设定的第一阈值,如超过,通知所述显示模块11动态显示二级鱼眼选单;
第一筛选单元133,用于在获知所述二级鱼眼选单中的一姓氏或姓氏部首被选中时,从查找到的联系人中筛选出具有选中姓氏或姓氏部首的联系人,并将筛选出的联系人的信息传送给联系人显示单元112显示;
显示模块11还包括:二级鱼眼显示单元113,用于显示二级鱼眼选单,在二级鱼眼选单显示查找到的联系人的姓氏或姓氏部首。
较佳地,联系人查找模块13还包括:
第二判断单元134,用于判断所述筛选出的联系人的个数是否超过设定的第二阈值,如超过,通知显示模块11动态显示三级鱼眼选单;
第二筛选单元135,用于在获知所述三级鱼眼选单中的一个字或一个笔划数被选中时,从所述筛选出的联系人中再次筛选出联系人的人名第一个字等于选中的字的联系人,或者再次筛选出联系人的人名第一个字的笔划数等于选中的笔划数的联系人,并将再次筛选出的联系人的信息传送给联系人显示单元112显示;
显示模块11还包括:三级鱼眼显示单元114,用于显示三级鱼眼选单,在三级鱼眼选单中显示筛选出的联系人的人名第一个字或人名第一个字的笔划数。
较佳地,查找单元131查找出通讯录12中姓氏笔划数等于选中姓氏笔划数的联系人,包括:从缓存的一临时数据表中查找姓氏笔划数等于选中姓氏笔划数的联系人,所述临时数据表包含通讯录12中所有联系人的姓氏、人名及在各级鱼眼选单显示的信息,且按照姓氏笔划数对联系人排序。
较佳地,一级鱼眼显示单元111在一级鱼眼选单显示的联系人的姓氏笔划数是从临时数据表中得到的姓氏笔划数的全集。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。