模拟手指触摸 Android,TouchLib
TouchLib
Android模擬觸摸屏幕庫(Android simulates a touch screen)
描述
在Root情況下也許你有模擬觸摸屏幕的需求,如按鍵精靈那樣的功能。
如何使用
添加到你的gradle中
compile 'indi.fmy:touchLib:+'
創建觸摸對象
RootTouch rootTouch = new RootTouch(Context context);
初始化
點擊事件
rootTouch.init()
此函數會返回是否成功初始化,如成功初始化返回true。如果初始化失敗那么調用觸摸Api將會拋出TouchOperationInvalid異常
調用對應的觸摸事件
rootTouch.click(x,y,finger)
使用第finger個手指點擊屏幕(x,y)坐標。
finger參數為一個long類型,表示你用哪只手指點擊。因為我們知道Android 是可以多點觸摸的
返回值為boolean ,如果成功那么返回true
如下代碼
//使用第0個手指點擊屏幕(100,100)處
rootTouch.click(100,100,0)
//使用第1個手指點擊屏幕(100,200)處
rootTouch.click(100,200,1)
滑動事件
touchSwip(long startX, long startY, long endX, long endY, long finger, long duration)
在duration(毫秒)設定的時間內勻速滑動屏幕從(starX,starY)到(endX,endY)
finger為使用哪個手指滑動
返回值為boolean ,如果成功那么返回true
自定義事件
當上述的模擬觸摸功能不滿足需求時,你可以自定義觸摸行為
模擬手指按下
public boolean touchDown(long x, long y, long finger);
返回值為boolean ,如果成功那么返回true
模擬手指移動
public boolean touchMove(long x, long y, long finger);
返回值為boolean ,如果成功那么返回true
模擬手指彈起
public boolean touchUp(long finger);
返回值為boolean ,如果成功那么返回true
自定義事件案例
我想手指在3秒內從(100,100)滑動到(200,200)
long starX=100;
long starY=100;
long endX=200;
long endY=200;
long duration=3000
rootTouch.touchDown(startX, startY, 1);
double xiDistance = abs(startX - endX);
double yiDistance = abs(startY - endY);
double xDelta = xiDistance / duration;
double yDelta = yiDistance / duration;
for (long i = 0; i < duration; i++) {
rootTouch.touchMove((long) (xDelta * i + startX),(long)(yDelta * i + startY), finger);
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
rootTouch.touchUp(finger);
當你確定不再觸摸屏幕時釋放資源
rootTouch.exit();
使用協議:
總結
以上是生活随笔為你收集整理的模拟手指触摸 Android,TouchLib的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 酷家乐入户花园怎么做? 酷家乐将房间改为
- 下一篇: android 下滑,Android实现