android 粘贴menu v,android WebView 长按自由复制文字,进入文字选择模式

/**

* 模拟点击事件和长按事件

*

*/

public class TouchEventRunnable implements Runnable {

private int x;

private int y;

private boolean isLongPress;

public TouchEventRunnable(int x, int y) {

this.x = x;

this.y = y;

}

public TouchEventRunnable(int x, int y, boolean isLongPress) {

this.x = x;

this.y = y;

this.isLongPress = isLongPress;

}

@Override

public void run() {

if(isLongPress){

longClickOnScreen(x,y);

}else{

onClick();

}

}

private void longClickOnScreen(int x, int y) {

final Instrumentation inst = new Instrumentation();

try {

long downTime = SystemClock.uptimeMillis();

long eventTime = SystemClock.uptimeMillis();

final MotionEvent eventDown = MotionEvent.obtain(downTime,

eventTime, MotionEvent.ACTION_DOWN, x, y, 0);

eventDown.setSource(InputDevice.SOURCE_TOUCHSCREEN);

final MotionEvent eventMove = MotionEvent.obtain(downTime, eventTime,

MotionEvent.ACTION_MOVE, x, y+1, 0);

eventMove.setSource(InputDevice.SOURCE_TOUCHSCREEN);

final MotionEvent eventUp = MotionEvent.obtain(downTime, eventTime,

MotionEvent.ACTION_UP, x, y, 0);

eventUp.setSource(InputDevice.SOURCE_TOUCHSCREEN);

inst.sendPointerSync(eventDown);

inst.sendPointerSync(eventMove);

try {

Thread.sleep(650);

} catch (InterruptedException e) {

e.printStackTrace();

}

inst.sendPointerSync(eventUp);

} catch (NullPointerException e) {

e.printStackTrace();

}

}

private void onClick(){

Instrumentation inst = new Instrumentation();

inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),

MotionEvent.ACTION_DOWN, x, y, 0));

inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(),

MotionEvent.ACTION_UP, x, y, 0));

//Log.v("LOG", " x = " + x + " y = " + y);

}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值