Android : 模拟点击performClick()/模拟长按performLongClick()/模拟onTouch事件

Posted Mars-xq

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android : 模拟点击performClick()/模拟长按performLongClick()/模拟onTouch事件相关的知识,希望对你有一定的参考价值。

参考

Android 模拟触摸动作MotionEvent事件

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事件

python模拟android屏幕高频点击工具

在Android 和 iOS 手机上模拟触屏点击的区别

Android代码模拟物理屏幕点击事件

Android adb 模拟滑动 按键 点击事件

Android 模拟手势点击屏幕