2011-08-08 14 views

答えて

0

あなたのコードでこれを試してください。 OnGestureListenerとOnClickListenerを実装する必要があります。

private GestureDetector gestureDetector; 
View.OnTouchListener gestureListener; 

gestureDetector = new GestureDetector(this); 
gestureListener = new View.OnTouchListener() // 
    { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) // 
     { 
      if (gestureDetector.onTouchEvent(event)) // 
      { 
       return true; 
      } 
      return false; 
     } 
    }; 

@Override 
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, 
     float velocityY) // 
{ 
    int changeInX = (int) (e2.getX() - e1.getX()); 

    // If the swipe was big enough, do something 
    if (Math.abs(changeInX) > SWIPE_MIN_DISTANCE 
      && Math.abs(velocityX) > SWIPE_MIN_VELOCITY) // 
    { 
     if (velocityX > 0) // 
      activity.animateSwipe(true); 
     else 
      activity.animateSwipe(false); 

     return true; 
    } 
    else 
     return false; 
} 

    public void animateSwipe(boolean right) { 
    TranslateAnimation anim = null; 

    LinearLayout layout = (LinearLayout) this 
      .findViewById(R.id.layoutVolume); 

    if (right) { 
     anim = new TranslateAnimation(0.0f, layout.getWidth(), 0.0f, 0.0f); 
    } else { 
     anim = new TranslateAnimation(0.0f, -layout.getWidth(), 0.0f, 0.0f); 
    } 

    anim.setDuration(250); 
    anim.setInterpolator(new AccelerateInterpolator(1.0f)); 

    layout.startAnimation(anim); 
} 
+0

Horizo​​ntalScrollViewがメインクラスにありますか? – mat

+0

また、これが何を表しているかわかりません。 activity.animateSwipe(true); – mat

+0

これはあなたの主な活動に一般的に入ります。 UIからコントローラを分離しておくためにMVCアーキテクチャを使用しますが、それはあなたの選択です。私は追加のコードを追加しました。 – Codeman

関連する問題