著录项信息
专利名称 | 在安卓系统下触摸屏的校屏方法和装置 |
申请号 | CN201310481866.4 | 申请日期 | 2013-10-16 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2014-01-01 | 公开/公告号 | CN103488368A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F3/044 | IPC分类号 | G;0;6;F;3;/;0;4;4查看分类表>
|
申请人 | 深圳市开立科技有限公司 | 申请人地址 | 广东省深圳市南山区粤海街道科技中二路深圳软件园二期12栋2楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 深圳开立生物医疗科技股份有限公司 | 当前权利人 | 深圳开立生物医疗科技股份有限公司 |
发明人 | 潘敏;才士民;杨帆 |
代理机构 | 暂无 | 代理人 | 暂无 |
摘要
本发明涉及安卓系统技术领域,尤其涉及在安卓系统下触摸屏的校屏方法和装置。所述方法包括S1,应用层校屏APK接收用户对触摸屏上指定校准点的点击;S2,后台程序将内核层上报的点击事件转化为指定校准点的触摸屏坐标;S3,通过TCP/IP协议,后台程序将指定校准点的触摸屏坐标传送给所述应用层校屏APK;S4,所述应用层校屏APK调用校屏算法,根据指定校准点的显示屏坐标、指定校准点的触摸屏坐标得到校屏系数,将校屏系数存入指定文件中;S5,在应用框架层,通过函数调用所述校屏算法,根据任意点的触摸屏坐标、所述校屏系数得到校准后的任意点的触摸屏坐标。本发明实现了对任意触摸屏进行校屏,且灵活度和准确性高。
1.在安卓系统下触摸屏的校屏方法,其特征在于,包括:
S1,应用层校屏APK接收用户对触摸屏上指定校准点的点击;
S2,后台程序将内核层上报的所述点击事件转化为指定校准点的触摸屏坐标;
S3,后台程序通过TCP/IP协议,将指定校准点的触摸屏坐标传送给所述应用层校屏APK;
S4,所述应用层校屏APK调用校屏算法,根据指定校准点的显示屏坐标、指定校准点的触摸屏坐标得到校屏系数,将校屏系数存入指定文件中;
S5,在应用框架层,通过函数调用所述校屏算法,根据任意点的触摸屏坐标、所述校屏系数得到校准后的任意点的触摸屏坐标。
2.如权利要求1所述的校屏方法,所述指定校准点包括:左上,右上,左下,右下,中间点;S2中还包括,将获取的事件取均值操作,将5个均值操作后的事件转化为5个指定校准点的触摸屏坐标。
3.如权利要求2所述的校屏方法,所述S4中得到校屏系数的步骤如下:
S41,应用层校屏APK调用校屏算法,所述校屏算法为:
XL=XTa(0)+YTa(1)+a(2),
YL=XTa(3)+YTa(4)+a(5),
其中,XT、YT为触摸屏坐标,XL、YL为对应的显示屏坐标,其中a(0)、a(1)、a(2)、a(3)、a(4)、a(5)为校屏系数;
S42,输入5个指定校准点的显示屏坐标和5个指定校准点的触摸屏坐标,对方程式求解,得到校屏系数a(0)、a(1)、a(2)、a(3)、a(4)、a(5)。
4.如权利要求3所述的校屏方法,所述S42具体步骤如下:
S421,构建x轴的目标函数f(x)、y轴的目标函数f(y):
S422,将f(x)分别对系数进行求导,并设f(x)为0,解方程可得校屏系数a(0)、a(1)、a(2);f(y)分别对系数进行求导,并设f(y)为0,解方程可得校屏系数a(3)、a(4)、a(5);
5.如权利要求1所述的校屏方法,所述S4中的指定文件具体指:/data/TS_CONFIG文件。
6.如权利要求1所述的校屏方法,所述S5中的函数具体指:\frameworks\base\services\input\InputReader.cpp中的cookPointerData()函数。
7.在安卓系统下触摸屏的校屏装置,其特征在于,包括:
接收模块,用于由应用层校屏APK接收用户对触摸屏上指定校准点的点击;
转换模块,用于将获取的所述点击事件转化为指定校准点的触摸屏坐标;
传送模块,用于通过TCP/IP协议,将指定校准点的触摸屏坐标传送给所述应用层校屏APK;
校屏系数计算模块,用于由所述应用层校屏APK调用校屏算法,根据指定校准点的显示屏坐标、指定校准点的触摸屏坐标得到校屏系数,将校屏系数存入指定文件中;
校准模块,用于在应用框架层,通过函数调用所述校屏算法,根据任意点的触摸屏坐标、所述校屏系数得到校准后的任意点的触摸屏坐标。
8.如权利要求7所述的校屏装置,所述指定校准点包括:左上,右上,左下,右下,中间点;
转换模块中还包括:均值处理单元,用于将获取的事件取均值操作;转化单元,用于将5个均值操作后的事件转化为5个指定校准点的触摸屏坐标。
9.如权利要求8所述的校屏装置,所述校屏系数计算模块具体包括:
调用单元,用于由应用层校屏APK调用校准算法,所述校准算法为:
XL=XTa(0)+YTa(1)+a(2),
YL=XTa(3)+YTa(4)+a(5),
其中,XT、YT为触摸屏坐标,XL、YL为对应的显示屏坐标,a(0)、a(1)、a(2)、a(3)、a(4)、a(5)为校屏系数;
计算单元,用于输入5个指定校准点的显示屏坐标和5个指定校准点的触摸屏坐标,对方程式求解,得到校屏系数a(0)、a(1)、a(2)、a(3)、a(4)、a(5)。
10.如权利要求9所述的校屏装置,所述计算单元具体包括:
构建子单元,用于构建x轴的目标函数f(x)、y轴的目标函数f(y):
求解子单元,用于将f(x)分别对系数进行求导,并设f(x)为0,解方程可得校屏系数a(0)、a(1)、a(2);将f(y)分别对系数进行求导,并设f(y)为0,解方程可得校屏系数a(3)、a(4)、a(5);
在安卓系统下触摸屏的校屏方法和装置\n技术领域\n[0001] 本发明涉及安卓系统技术领域,尤其涉及在安卓系统下(电容屏)触摸屏的校屏方法和装置。\n背景技术\n[0002] 在android系统下,触摸屏与显示屏配合使用时,由于触摸屏与LCD显示屏是两个不同的物理器件,LCD处理的是像素,例如通常所说的分辨率是1280x1024,实际就是指每行的宽度是1280个像素,高度是1024个像素,而触摸屏处理的数据是点的物理坐标,该坐标是通过触摸屏控制器采集到的。因此,在触摸屏和LCD显示屏两者之间需要进行坐标的转换,才能使得触摸屏上的触摸点准确无误的在对应LCD显示屏位置上显示或响应点击处理事件。\n[0003] 现有android系统下,采用的校屏技术(大致分为两种,一种)是在驱动层直接校准,因为指定屏都有对应的驱动,在驱动层校准原始数据一般是在显示屏驱动中直接修改,这种方式不能一般化,只能针对指定屏进行,灵活度不高。(另一种则是在框架层校准,现存技术未能给出针对android4.0以上系统具体的电容屏校屏方案。)\n发明内容\n[0004] 本发明所要解决的技术问题是,如何实现对任意触摸屏进行校屏。\n[0005] 本发明实施例提供了在安卓系统下触摸屏的校屏方法,包括:\n[0006] S1,用户对触摸屏上指定校准点的点击后,应用层APK获得对应校准点显示屏坐标值;\n[0007] S2,后台程序将内核层上报的事件转化为指定校准点的触摸屏坐标;\n[0008] S3,后台程序通过TCP/IP协议,将指定校准点的触摸屏坐标传送给所述应用层校屏APK;\n[0009] S4,所述应用层校屏APK调用校准算法,根据指定校准点的显示屏坐标、指定校准点的触摸屏坐标得到校屏系数,将校屏系数存入指定文件中;\n[0010] S5,在应用框架层,通过函数调用所述校屏算法,根据任意点的触摸屏坐标、所述校屏系数得到校准后的任意点的触摸屏坐标。\n[0011] 本发明另一实施例提供了在安卓系统下触摸屏的校屏装置,包括:\n[0012] 接收模块,用于由应用层校屏APK接收用户对触摸屏上指定校准点的点击事件;\n[0013] 转换模块,用于将获取的事件转化为指定校准点的触摸屏坐标;\n[0014] 传送模块,用于通过TCP/IP协议,将指定校准点的触摸屏坐标传送给所述应用层校屏APK;\n[0015] 校屏系数计算模块,用于由所述应用层校屏APK调用校屏算法,根据指定校准点的显示屏坐标、指定校准点的触摸屏坐标得到校屏系数,将校屏系数存入指定文件中;\n[0016] 校准模块,用于在应用框架层,通过函数调用所述校准算法,根据任意点的触摸屏坐标、所述校屏系数得到校准后的任意点的触摸屏坐标。\n[0017] 从以上技术方案可以看出,本发明实施例具有以下优点:本发明针对android4.0系统提供具体方案,实现在framework框架层对触摸屏进行校屏。由于android系统framework框架层提供了一般化的机制,对所有底层上报的触摸事件均可处理与上报给应用层,因此在framework框架层可实现任意触摸屏的校屏,相比在驱动层上校准更为灵活。\n附图说明\n[0018] 图1为本发明实施例一的方法流程图;\n[0019] 图2为本发明步骤S4的具体方法流程图;\n[0020] 图3为本发明步骤S42的具体方法流程图;\n[0021] 图4为本发明实施例二的装置结构框图;\n[0022] 图5为本发明校屏系数计算模块的内部结构框图;\n[0023] 图6为本发明计算单元的内部结构框图。\n具体实施方式\n[0024] 下面将结合本发明中的说明书附图,对发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。\n[0025] 实施例一\n[0026] Android系统从下到上分为:Linux内核层、系统运行库层、应用程序框架层(framework层)和应用程序层,本发明涉及到其中的Linux内核层、应用程序框架层与应用程序层。\n[0027] 参见图1,本发明实施例提供了在安卓系统下触摸屏的校屏方法,包括:\n[0028] S1,应用层校屏APK响应用户对触摸屏上指定校准点的点击;\n[0029] android应用层指定5个校准点,校屏时用户依次点击此5点。用户点击校准点时,通过Linux内核层的read函数获取驱动层的点击事件:\n[0030] read(ufds[i].fd,&event,sizeof(event));\n[0031] S2,后台程序将获取的事件转化为指定校准点的触摸屏坐标;\n[0032] 例如,输入的代码如下:\n[0033]\n[0034]\n[0035] 在本实施例中,优选地,所述指定校准点包括:左上,右上,左下,右下,中间点;S2中还包括,将获取的事件取均值操作,将5个均值操作后的事件转化为5个指定校准点的触摸屏坐标。\n[0036] S3,后台程序通过TCP/IP协议,将指定校准点的触摸屏坐标传送给所述应用层校屏APK;\n[0037] S4,所述应用层校屏APK调用校屏算法,根据指定校准点的显示屏坐标、指定校准点的触摸屏坐标得到校屏系数,将校屏系数存入指定文件中;\n[0038] 在本实施例中,需要说明的是,所述S4中的指定文件具体指:/data/TS_CONFIG文件。\n[0039] 参见图2,在本实施例中,需要说明的是,所述S4中得到校屏系数的步骤如下:\n[0040] S41,应用层校屏APK调用校屏算法,所述校准算法为:\n[0041] XL=XTa(0)+YTa(1)+a(2),\n[0042] YL=XTa(3)+YTa(4)+a(5),\n[0043] 其中XT、YT为触摸屏坐标,XL、YL为对应的显示屏坐标,其中a(0)、a(1)a(2)、a(3)、a(4)、a(5)为校屏系数;\n[0044] S42,输入5个指定校准点的显示屏坐标和5个指定校准点的触摸屏坐标,对方程式求解,得到校屏系数a(0)、a(1)、a(2)、a(3)、a(4)、a(5)。\n[0045] XL1=XT1a(0)+YT1a(1)+a(2),\n[0046] XL2=XT2a(0)+YT2a(1)+a(2),\n[0047] XL3=XT3a(0)+YT3a(1)+a(2),\n[0048] XL4=XT4a(0)+YT4a(1)+a(2),\n[0049] XL5=XT5a(0)+YT5a(1)+a(2),\n[0050] YL1=XT1a(3)+YT1a(4)+a(5),\n[0051] YL2=XT2a(3)+YT2a(4)+a(5),\n[0052] YL3=XT3a(3)+YT3a(4)+a(5),\n[0053] YL4=XT4a(3)+YT4a(4)+a(5),\n[0054] YL5=XT5a(3)+YT5a(4)+a(5),\n[0055] 在本实施例中,利用上述10个方程,可求得校屏系数。\n[0056] 参见图3,在本实施例中,优选地,所述S42具体步骤如下:\n[0057] S421,构建x轴的目标函数f(x)、y轴的目标函数f(y):\n[0058]\n[0059]\n[0060] 校准算法的目的为求得最佳的校屏系数,可通过最小均方误差的方法求得。\n[0061] S422,将f(x)分别对系数进行求导,并设f(x)为0,解方程可得校屏系数a(0)、a(1)、a(2);f(y)分别对系数进行求导,并设f(y)为0,解方程可得校屏系数a(3)、a(4)、a(5);\n[0062]\n[0063]\n[0064]\n[0065] 为得到最佳的校屏系数,只需使f(x)为最小。对上式分别对系数进行求导:解上述方程可得最佳的校屏系数组a(0)、a(1)、a(2);\n[0066]\n[0067]\n[0068]\n[0069] 为得到最佳的校屏系数,只需使f(y)为最小。对上式分别对系数进行求导:解上述方程可得最佳的校屏系数组a(3)、a(4)、a(5)。\n[0070] 例如,将APK层得到的最佳校屏系数从文件中读取出来,存入结构体calibration中的数组a中,输入代码如下:\n[0071]\n[0072] S5,在应用框架层,通过函数调用所述校屏算法,根据任意点的触摸屏坐标、所述校屏系数得到校准后的任意点的触摸屏坐标。\n[0073] 在本实施例中,需要说明的是,所述S5中的函数具体指:\n[0074] \frameworks\base\services\input\InputReader.cpp中的cookPointerData()函数。\n[0075] 因此校准方程是:\n[0076] Xlcd=[Xtpa(0)+Ytpa(1)+a(2)],\n[0077] Ylcd=[Xtpa(3)+Ytpa(4)+a(5)],\n[0078] 其中Xlcd,Ylcd为校准后的任意点的触摸屏坐标,其与显示屏坐标值无限接近,Xtp,Ytp为任意点的触摸屏坐标,a(0)~a(5)为6个最佳校屏系数。\n[0079] 例如:\n[0080] android4.0系统处理触摸屏坐标与显示屏坐标的转换关系在应用程序框架层\frameworks\base\services\input\InputReader.cpp中的cookPointerData()函数中,在此函数中添加触摸屏校准代码:\n[0081] x=float((in.x)*calibrate_param[0]+(in.y)*calibrate_param[1]+calibrate_param[2]);\n[0082] y=float((in.x)*calibrate_param[3]+(in.y)*calibrate_param[4]+calibrate_param[5]);\n[0083] 优选地,利用全局标志变量,强制每次校屏只读取一次校屏系数文件,以提高代码执行效率;\n[0084] 因此,在上述函数之前,还包括如下代码:\n[0085]\n[0086] 综上所述,本发明能较好的解决电容屏在android系统使用中出现的缩放,翻转,平移等问题,本发明是在android4.0 framework层对触摸坐标进行修正,可对任意类型触摸屏进行校屏,相比在驱动层上修正更为灵活。\n[0087] 实施例二\n[0088] 参见图4,在安卓系统下触摸屏的校屏装置,包括:\n[0089] 接收模块201,用于由应用层校屏APK响应用户对触摸屏上指定校准点的点击;\n[0090] 转换模块202,用于将获取的事件转化为指定校准点的触摸屏坐标;\n[0091] 传送模块203,用于通过TCP/IP协议,将指定校准点的触摸屏坐标传送给所述应用层校屏APK;\n[0092] 校屏系数计算模块204,用于由所述应用层校屏APK调用校屏算法,根据指定校准点的显示屏坐标、指定校准点的触摸屏坐标得到校屏系数,将校屏系数存入指定文件中;\n[0093] 校准模块205,用于在应用框架层,通过函数调用所述校屏算法,根据任意点的触摸屏坐标、所述校屏系数得到校准后的任意点的触摸屏坐标。\n[0094] 在本实施例中,优选地,所述指定校准点包括:左上,右上,左下,右下,中间点;转换模块中还包括:均值处理单元,用于将获取的事件取均值操作;转化单元,用于将5个均值操作后的事件转化为5个指定校准点的触摸屏坐标。\n[0095] 参见图5,在本实施例中,需要说明的是,所述校屏系数计算模块204具体包括:\n[0096] 调用单元2041,用于由应用层校屏APK调用校屏算法,所述校准算法为:\n[0097] XL=XTa(0)+YTa(1)+a(2),\n[0098] YL=XTa(3)+YTa(4)+a(5),\n[0099] 其中,XT、YT为触摸屏坐标,XL、YL为对应的显示屏坐标,其中a(0)、a(1)、a(2)、a(3)、a(4)、a(5)为校屏系数;\n[0100] 计算单元2042,用于输入5个指定校准点的显示屏坐标和5个指定校准点的触摸屏坐标,对方程式求解,得到校屏系数a(0)、a(1)、a(2)、a(3)、a(4)、a(5)。\n[0101] 参见图6,在本实施例中,优选地,所述计算单元2042具体包括:\n[0102] 构建子单元20421,用于构建x轴的目标函数f(x)、y轴的目标函数f(y):\n[0103]\n[0104]\n[0105] 求解子单元20422,用于将f(x)分别对系数进行求导,并设f(x)为0,解方程可得校屏系数a(0)、a(1)、a(2);将f(y)分别对系数进行求导,并设f(y)为0,解方程可得校屏系数a(3)、a(4)、a(5);\n[0106]\n[0107]\n[0108]\n[0109]\n[0110]\n[0111]\n[0112] 综上所述,本发明能较好的解决电容屏在android系统使用中出现的缩放,翻转,平移等问题,本发明是在android4.0 framework层对触摸坐标进行修正,可对任意类型触摸屏进行校屏,相比在驱动层上修正更为灵活。\n[0113] 以上对本发明所提供的在安卓系统下触摸屏的校屏方法和装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
法律信息
- 2019-01-18
专利权人的姓名或者名称、地址的变更
专利权人由深圳开立生物医疗科技股份有限公司变更为深圳开立生物医疗科技股份有限公司
地址由518051 广东省深圳市南山区玉泉路毅哲大厦4楼变更为518057 广东省深圳市南山区粤海街道科技中二路深圳软件园二期12栋2楼
- 2017-02-15
- 2015-04-22
著录事项变更
申请人由深圳市开立科技有限公司变更为深圳开立生物医疗科技股份有限公司
地址由518051 广东省深圳市南山区玉泉路毅哲大厦4楼变更为518051 广东省深圳市南山区玉泉路毅哲大厦4楼
- 2014-02-05
实质审查的生效
IPC(主分类): G06F 3/044
专利申请号: 201310481866.4
申请日: 2013.10.16
- 2014-01-01
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-02-23
|
2010-10-22
| | |
2
| |
2012-10-17
|
2012-07-06
| | |
3
| |
2013-07-03
|
2011-12-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |