2012-08-02 31 views

Trả lời

66

Bạn có thể sử dụng một onTouchListener:

view.setOnTouchListener(new View.OnTouchListener() {   
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     switch(event.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
       // PRESSED 
       return true; // if you want to handle the touch event 
      case MotionEvent.ACTION_UP: 
       // RELEASED 
       return true; // if you want to handle the touch event 
     } 
     return false; 
    } 
}); 
+4

'MotionEvent.ACTION_CANCEL' cũng sẽ được xử lý dưới dạng sự kiện phát hành nút (giống như cách 'ACTION_UP') khi nó được kích hoạt khi bạn thực hiện một số cử chỉ sau khi nhấn nút (sự kiện' ACTION_UP' không được kích hoạt trong trường hợp này). – user2137020

+0

Nếu bất kỳ ai thắc mắc, trên một Chế độ xem thông thường, những điều này không tương ứng với 'ACTION_BUTTON_PRESS' và' ACTION_BUTTON_RELEASE'. Nghĩ rằng cả hai có thể bao gồm các hành động 'DOWN',' ​​UP' và 'CANCEL'. –

3

onTouchListener là những gì bạn đang tìm kiếm.

Bạn sẽ cần sử dụng đúng MotionEvent.

Điều này sẽ cho phép bạn xử lý các loại "chạm" khác nhau.

0

Câu trả lời được đưa ra bởi fiddler là chính xác cho chế độ xem chung.

Đối với một Button, bạn nên trở false từ xử lý cảm ứng luôn:

button.setOnTouchListener(new View.OnTouchListener() {  
    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     switch(event.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
       // PRESSED 
       break; 
      case MotionEvent.ACTION_UP: 
      case MotionEvent.ACTION_CANCEL: 
       // RELEASED 
       break; 
     } 
     return false; 
    } 
}); 

Nếu bạn quay trở lại true bạn sẽ phá vỡ chế liên lạc thường xuyên của nút. Điều đó có nghĩa là bạn sẽ làm mất hiệu ứng hình ảnh của việc nhấn nút xuống và chạm vào gợn sóng. Ngoài ra, Button#isPressed() sẽ trả lại false trong khi nút thực sự được nhấn.

Xử lý cảm ứng thông thường của nút sẽ đảm bảo rằng bạn nhận được các sự kiện tiếp theo ngay cả khi trả lại false.

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