使用android-event-injector库,我编写了一个在触发某些事件时注入touch事件的应用程序。问题是我需要在给定的绝对坐标处注入触摸View,因此我执行以下操作以获取屏幕上的位置:
View
View v = /* find view*/; int [] coords = new int[2]; v.getLocationOnScreen(coords);
这给了我屏幕上的绝对坐标。问题是触摸注入不起作用。
我可以在屏幕驱动程序中正确插入触摸,但是由于某些原因,坐标会被误解,并且触摸会注入到其他位置。以下是一些示例(我的屏幕面向横向为1024x600):
根据样本值,似乎
为了在(X,Y)显示坐标处生成触摸事件,可以如下计算需要注入的(x,y)触摸坐标
x(touch) = (600/1024) * X(disp) y(touch) = (1024/600) * Y(disp)