Android : 模拟点击performClick()/模拟长按performLongClick()/模拟onTouch事件
Posted Mars-xq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android : 模拟点击performClick()/模拟长按performLongClick()/模拟onTouch事件相关的知识,希望对你有一定的参考价值。
参考
android MotionEvent.obtain模拟事件,自动触发
一、模拟点击事件:
mBtn1.performClick();
//模拟点击事件
//mBtn1.performClick(); 需要定义setOnClickListener事件
mBtn1.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Log.e(TAG, "onClick: ===============>");
);
二、模拟长按事件
mBtn1.performLongClick();
//模拟长按事件
//mBtn1.performLongClick();需要定义setOnLongClickListener事件
mBtn1.setOnLongClickListener(new View.OnLongClickListener()
@Override
public 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")
@Override
public 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();
以上是关于Android : 模拟点击performClick()/模拟长按performLongClick()/模拟onTouch事件的主要内容,如果未能解决你的问题,请参考以下文章
Android : 模拟点击performClick()/模拟长按performLongClick()/模拟onTouch事件