使用android-event-injector庫,我編寫了一個應用程序,以便在觸發某個事件時注入觸摸事件。問題是,我需要在給定View
的絕對座標注入觸摸的,所以我下面在屏幕上獲得位置:使用屏幕驅動程序注入觸摸事件
View v = /* find view*/;
int [] coords = new int[2];
v.getLocationOnScreen(coords);
這給了我絕對座標在屏幕上。問題是觸摸注入不起作用。
我可以在屏幕驅動程序中正確注入觸摸,但由於某些原因,座標被誤解,觸及注入其他地方。 以下是一些例子(我的屏幕1024x600的景觀導向):
- 座標(0,0) - >注入(0,0)
- COORDS(0600) - >注入(0351)
- COORDS(1024,0) - >不注射(最有可能的x是超出範圍)
- COORDS(1024,600) - >不注射(最有可能的x是超出範圍)
- COORDS(640480) - >未注入(最有可能的x超出範圍)
- Coords(512,300) - > Injecte在(872175)
- COORDS d(100,100) - >在(170,58)
當將(X,Y)觸摸座標的觸摸事件嘗試將觸摸事件注入屏幕驅動程序,也許您忽略了屏幕校準(大小和/或軸),這會導致您的觸摸事件被理解,但屏幕座標錯誤。在Android設置中啓用顯示指針x和y的座標,並使用幾對值更新您的問題 - 在驅動程序中注入並在屏幕上檢測到值(理想情況下位於顯示屏的四角)。 – TheCodeArtist
@TheCode藝術家我嘗試並添加了一些例子。 – Vektor88