gpt4 book ai didi

android - 如何检测是否有东西在 onTouch() 之外触摸/不触摸屏幕?

转载 作者:行者123 更新时间:2023-11-29 14:47:00 27 4
gpt4 key购买 nike

我有一个方法被不断调用。

我希望该方法具有以下内容:

if(screen is being touched) {
Do this
}
else {
Do this
}

表达这个问题的另一种方式是,我希望只要触摸屏幕就会发生一些事情,而不仅仅是触摸屏幕后立即发生一些事情。

我看了这个问题:detect if the touch stopped on an android device screen

但我对答案感到困惑。

最佳答案

你可以使用类似这样的代码

view.setOnTouchListener(new OnTouchListener () {
public boolean onTouch(View view, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// The user just touched the screen

break;
case MotionEvent.ACTION_UP:
// The touch just ended

break;
}

return false;
}
});

您应该将此监听器分配给 Fragment 的 Root View 或 Activity 的装饰 View 。您可以通过以下方式获得:

View view = getWindow().getDecorView();

如果您不想只对触摸事件使用react,而只想知道屏幕是否以不同的方式被触摸,只需在监听器中分配 bool 标志即可。

编辑

由于需要在定义的时间间隔连续调用一个方法,我建议定义时间间隔

final static long REFRESH_TIME = 100; // miliseconds

然后创建一个Handler

final Handler handler = new Handler();

并定义 Runnable 将被 Handler 调用并调用您的方法

Runnable runnable = new Runnable() {
@Override
public void run() {
// call your method

handler.postDelayed(this, REFRESH_TIME);
}
}

在您的 OnTouchListener 中,您初始化并停止重复

case MotionEvent.ACTION_DOWN:
handler.post(runnable);
break;

case MotionEvent.ACTION_UP:
handler.removeCallbacks(runnable);
break;

关于android - 如何检测是否有东西在 onTouch() 之外触摸/不触摸屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32361846/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com