2012-01-19 53 views
6

Hiện tại tôi đang sử dụng onTouchEvent(MotionEvent me) để đăng ký sự kiện đầu vào, đây là ứng dụng trò chơi, khi tốc độ khung hình làm chậm chương trình không thể đăng ký sự kiện input.UP sau khi nút GUI được phát hành. tiếp tục tự di chuyển ...Android - cách kiểm tra xem màn hình có bị chạm không?

Có phương pháp boolean trong API kiểm tra xem có ngón tay trên màn hình tại bất kỳ thời điểm nào không?

Cảm ơn bạn

Trả lời

5

Có thể là giá trị kiểm tra ra các tài liệu cho onUserInteraction().

Something như thế này sẽ cho phép bạn biết làm thế nào thời gian gần đây người dùng đã tương tác với màn hình:

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

gì nếu u muốn được thông báo về bất kỳ ứng dụng không chỉ bạn mà đã có trên hình cảm ứng? – jonney

0

Đảm bảo rằng tôi luôn luôn trả true từ OnTouchEvent như trái ngược với super.OnTouchEvent dường như có giải quyết vấn đề ...

2

Bạn có thể nhận sự kiện trên chạm và xem Tác vụ xuống, Di chuyển hoặc Hành động và các hành động khác nhưng hiện tại chúng ta hãy dừng lại ở đây. Tôi có một ví dụ đơn giản mà tôi nghĩ rằng bạn hoặc bất kỳ ai khác sẽ thấy nó hữu ích.

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; 
    } 
} 

Chúc mừng,

Các vấn đề liên quan