Android屏幕校准的apk应用实现

本文介绍了Android屏幕校准的过程,包括从ts_calibrate获取校准参数,实现算法,生成pointercal文件,以及创建校准引导页面。在获取屏幕参数时遇到实际值与预期不符的问题,通过写死分辨率解决。校准过程中注意到显示屏坐标已被校准,需使用未校准的坐标计算。最后通过在驱动中添加calibration_flag标志位,确保正确进行校准。
摘要由CSDN通过智能技术生成
紧跟着上一篇博文,在android内核中实现屏幕校准,这一篇博文主要做的便是将可执行文件ts_calibrate移植成android的apk应用。

现在我们已经知道,ts_calibrate就是取了触摸屏 5个点的坐标,然后与对应的显示屏的点坐标联立方程,求解得到7个校准参数。

直接上源码过程:

新建一个类Calibrate,类方法perform_calibration()实现上述求解7个校准参数的算法,calibrate_main()将7个校准参数生成pointercal文件。具体实现都是从tslib源码目录下tests/ts_calibrate.c中copy出来的。

然后就是画一个校准页面引导点击屏幕的操作,依次取得5个点的坐标。
先在校准页面TSCalibrateActivity里获取一下屏幕的相关参数:

Display display = this.getWindowManager().getDefaultDisplay();
Point outSize = new Point();
// 通过Display对象获取屏幕宽、高数据并保存到Point对象中
display.getSize(outSize);
// 从Point对象中获取宽、高
UI_SCREEN_WIDTH = 800;//outSize.x;
UI_SCREEN_HEIGHT = 480;//outSize.y;

但实际情况是,获取出来的值一直对不上,本来是分辨率800 * 480,获取的结果一直是752 * 480,查过了什么状态栏导航栏这些,但是我用的全屏显示,没这两个啊。没搞懂,先写死吧。

根据上面取出来的UI_SCREEN_WIDTH 、UI_SCREE

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值