2010-11-17 48 views
15

Tôi đang phát triển một ứng dụng. Trong ứng dụng của tôi, tôi hiển thị hình ảnh bằng cách sử dụng ImageView từ url bằng cách sử dụng phân tích xml. Tôi muốn hiển thị hình ảnh thu phóng khi tôi chạm đúp vào Hình ảnh, sau đó một lần nữa chạm đúp vào zoomImage, tôi muốn đặt lại hình ảnh. Làm thế nào để thực hiện trong hình ảnh bằng cách sử dụng Android?Làm cách nào để triển khai trình xử lý cảm ứng trên hình ảnh?

Trả lời

43

Đây là cách bạn triển khai trình xử lý cảm ứng trong Android.

 yourImageView.setOnTouchListener(new OnTouchListener() 
     { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) 
      { 
       return false; 
      } 
     }); 

Để phát hiện vòi đôi bạn sử dụng GestureDetector như thế này:

1) Hãy GestureDetector của riêng bạn, có nguồn gốc từ SimpleOnGestureListener và ghi đè lên các phương pháp bạn đang quan tâm (xem tài liệu google về SimpleOnGestureListener cho các phương pháp chính xác bạn có thể ghi đè, tôi đã thực hiện nhấn đúp vào đây):

class MyGestureDetector extends GestureDetector.SimpleOnGestureListener 
{ 

@Override 
public boolean onDoubleTapEvent(MotionEvent e) 
{ 
    Log.i("Taghere..", "onDoubleTapEvent"); 
    return true; 
    } 
} 

2) Tạo một thể hiện trình dò ​​cử chỉ của bạn. Tôi đang tạo biến thành viên và khởi tạo trong onCreate.

private GestureDetector mDetector; 

    mDetector = new GestureDetector(this, new MyGestureDetector()); 

3) Thiết lập một người biết lắng nghe cảm ứng trên ImageView của bạn và định tuyến các thông điệp để phát hiện cử chỉ của bạn:

ImageView iv = (ImageView)findViewById(R.id.yourimageviewid); 
iv.setOnTouchListener(new OnTouchListener(){ 

@Override 
public boolean onTouch(View v, MotionEvent event) 
{ 
    mDetector.onTouchEvent(event); 
    return true; 
}}); 

tôi sẽ ghi đè lên các phương pháp trong MyGestureDetector và đăng nhập để logcat như tôi đang làm trên đôi chạm để cảm nhận cách hoạt động của tính năng này.

+0

@ rreeverb, tôi muốn xác định "Người dùng chạm đúp hoặc chạm một lần vào hình ảnh", Cách tôi thực hiện? – JohnNick

+0

Hmm, tôi thực sự không biết chắc chắn, xin lỗi. Bạn có thể nhìn vào GestureDetector.OnGestureListener. Nếu mọi thứ khác thất bại, bạn có thể nhận được thời gian liên lạc xảy ra và so sánh nó với thời gian của liên lạc cuối cùng và xem nếu nó rơi trong thời gian 'nhấn đúp'. –

+0

GestureDetector.OnDoubleTapListener thực sự –

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