参考
Android 模拟触摸动作MotionEvent事件
android MotionEvent.obtain模拟事件,自动触发
一、模拟点击事件:
mBtn1.performClick();
//模拟点击事件//mBtn1.performClick(); 需要定义setOnClickListener事件mBtn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Log.e(TAG, "onClick: ===============>");}});
二、模拟长按事件
mBtn1.performLongClick();
//模拟长按事件//mBtn1.performLongClick();需要定义setOnLongClickListener事件mBtn1.setOnLongClickListener(new View.OnLongClickListener() {@Overridepublic boolean onLongClick(View v) {Log.e(TAG, "onLongClick: ===================>");return false;}});
三、模拟 onTouch 事件
performTouchEventClick(mBtn1, 0, 0);
//performTouchEventClick(mBtn1, 0, 0);需要定义setOnTouchListener事件mBtn1.setOnTouchListener(new View.OnTouchListener() {@SuppressLint("ClickableViewAccessibility")@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:Log.e(TAG, "onTouch: =================>ACTION_DOWN");break;case MotionEvent.ACTION_UP:Log.e(TAG, "onTouch: =================>ACTION_UP");break;}return false;}});
private void performTouchEventClick(View view, float x, float y) {long downTime = SystemClock.uptimeMillis();MotionEvent downEvent = MotionEvent.obtain(downTime, downTime,MotionEvent.ACTION_DOWN,x, y, 0);downTime += 1000;MotionEvent upEvent = MotionEvent.obtain(downTime, downTime,MotionEvent.ACTION_UP,x, y, 0);view.dispatchTouchEvent(downEvent);view.dispatchTouchEvent(upEvent);downEvent.recycle();upEvent.recycle();}