簡體   English   中英

Android - 如何檢查屏幕是否被觸摸?

[英]Android - how to check whether the screen is being touched?

我目前正在使用onTouchEvent(MotionEvent me)注冊輸入事件,但是,這是一個游戲應用程序,當幀速率減慢時,程序有時無法在GUI按鈕釋放后注冊input.UP事件,這會導致我的角色繼續自己動起來......

是否有像API中的布爾方法檢查在任何給定時間屏幕上是否有手指?

謝謝

可能值得查看onUserInteraction()的文檔。

這樣的事情可以讓你知道用戶最近與屏幕的互動情況:

@Override
public void onUserInteraction(){
    MyTimerClass.getInstance().resetTimer();
}

您可以獲得觸摸事件並查看Action down,Move或Action Up以及其他操作,但暫時讓我們停在這里。 我有一個簡單的例子,我認為你或其他任何人都會發現它很有用。

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.widget.Toast;

public class MainActivity extends Activity {

    private boolean isTouch = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        int X = (int) event.getX();
        int Y = (int) event.getY();

        int eventaction = event.getAction();
        switch (eventaction) {

        case MotionEvent.ACTION_DOWN:
            Toast.makeText(this, "ACTION_DOWN AT COORDS "+"X: "+X+" Y: "+Y, Toast.LENGTH_SHORT).show();         
            isTouch = true;
            break;

        case MotionEvent.ACTION_MOVE:
            Toast.makeText(this, "MOVE "+"X: "+X+" Y: "+Y, Toast.LENGTH_SHORT).show();
            break;

        case MotionEvent.ACTION_UP:
            Toast.makeText(this, "ACTION_UP "+"X: "+X+" Y: "+Y, Toast.LENGTH_SHORT).show();
            break;
        }
        return true;
    }
}

干杯,

有一個OnTouchListener對任何View都有一個onTouch()方法。

http://developer.android.com/reference/android/view/View.OnTouchListener.html

確保我總是從OnTouchEvent返回true而不是super.OnTouchEvent似乎解決了這個問題......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM