2012-05-12 27 views
5

Tôi đang gặp sự cố thú vị ... mà dường như tôi không thể tìm ra giải pháp cho. Tôi đang sử dụng một ObjectAnimator để xoay một ImageView; nhưng onTouchListener dường như chỉ đăng ký MotionEvent.ACTION_DOWN. (Tôi đã suy ra điều này từ Log Cats, cũng có MotionEvent.ACTION_MOVE và MotionEvent.ACTION_UP).Chỉ xem đăng ký MotionEvent.ACTION_DOWN

Tôi nghĩ có thể sự cố phải liên quan đến việc cố gắng lắng nghe và động đến một veiw cùng một lúc. Tôi đã bọc cả hình ảnh và bố cục tuyến tính (được đặt thành PHỤ TÙNG MATCH) trong bố cục tương đối và đăng ký bố cục tuyến tính để nghe các sự kiện chạm. Bố cục tuyến tính có cùng vấn đề; chỉ MotionEvent.ACTION_UP đang được xử lý. Có điều gì tôi cần phải thực hiện để có được MotionEvent.ACTION_MOVE được đăng ký không?

Đây là mã của tôi:

  touch_pad = (LinearLayout) findViewById(R.id.layout_touch_capture); 
    touch_pad.setOnTouchListener(this); 
    touch_pad.requestFocus(); 

      public boolean onTouch(View v, MotionEvent event) { 
    switch(v.getId()) { 
    case (R.id.layout_touch_capture): 

    long end = 0; 
    long start = 0; 
    float y = event.getY(); 
    float y_sum = y; 
    float x = event.getX(); 

    switch(event.getAction()) { 
    case (MotionEvent.ACTION_UP): 
     end = animator.getCurrentPlayTime(); 
    Log.d("WheelActivity", "end location = " + end); 
    break; 
    case (MotionEvent.ACTION_MOVE): 

    Log.d("WheelActivity", "event.getY() = " + y); 
    y_sum += y; 
    animator.setCurrentPlayTime((long) (start + y_sum)); 
    Log.d("WheelActivity", "animator play time = "        animator.getCurrentPlayTime()); 
    Log.d("WheelActivity", "animator fraction = " + 
      animator.getAnimatedFraction()); 

    break; 
    case (MotionEvent.ACTION_DOWN): 
     start = animator.getCurrentPlayTime(); 
    Log.d("WheelActivity", "start location = " + start); 
    break; 
    } 
    } 
    return false; 
} 

(Xin lỗi về mã kém định dạng ...)

Trả lời

12
return false; 

đổi thành return true;

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