2010-11-17 44 views
15

Bir uygulama geliştiriyorum. Uygulamamda xml ayrıştırma kullanarak url'den ImageView kullanarak görüntülerim. Görüntü üzerine iki kez dokunduğumda yakınlaştırma görüntüsünü görüntülemek istiyorum, sonra tekrar zoomImage üzerine çift dokunun, görüntüyü sıfırlamak istiyorum. Android kullanarak görüntüde nasıl uygulanır?Görüntüde dokunma dinleyicisi nasıl uygulanır?

cevap

43

Android'de bir dokunma dinleyicisi nasıl uygularsınız.

1) SimpleOnGestureListener türetilen kendi GestureDetector, olun ve (tam yöntemleri için SimpleOnGestureListener üzerinde google'ın docs bkz ilgilendiğiniz yöntemleri geçersiz:

 yourImageView.setOnTouchListener(new OnTouchListener() 
     { 

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

böyle GestureDetector kullanmak çift musluklar algılamak için (Buraya çift dokunuş yapabilirim):

class MyGestureDetector extends GestureDetector.SimpleOnGestureListener 
{ 

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

2) Jest dedektörünüzün bir örneğini oluşturun. Bir üye değişkeni yapıyorum ve onCreate'da örnek oluşturuyorum.

private GestureDetector mDetector; 

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

sizin ImageView ve rota Hareketiniz dedektöre mesajlar üzerinde dokunmatik dinleyici 3) Kurulum: Çift üzerine yapıyor gibi

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

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

Ben MyGestureDetector yöntemleri geçersiz kılmak ve giriş yapacaktır LogCat için Bunun nasıl çalıştığını öğrenmek için dokunun.

+0

@ rreeverb, "Görüntünün kullanıcı tarafından dokunulduğunda çift veya tek dokunuşla" nasıl belirlenir, Nasıl yaparım? – JohnNick

+0

Hmm, Gerçekten emin değilim, üzgünüm. GestureDetector.OnGestureListener'a bakabilirsiniz. Eğer her şey başarısız olursa dokunmanın gerçekleştiği zamanı alabilir ve son dokunuş zamanı ile karşılaştırabilir ve 'çift dokunma' süresi içinde düşüp düşmediğini görebilirsiniz. –

+0

GestureDetector.OnDoubleTapListener aslında –

İlgili konular