2013-04-28 3 views
1

나는 그림 호출기를 사용하여 그림 갤러리를 만들고 있습니다. 현재 사용자가 꼬집고 확대/축소 및 이동하는 데 사용할 수있는 사용자 지정 ImageView가 있습니다. 내가 가진 문제는 확대/축소/확대/축소와보기 호출기에서의 페이지 전환을 구분하는 방법입니다.페이저 안드로이드 필터 터치 이벤트

뷰 호출기에 onInterceptTouchEvent를 사용하려고했지만이 메서드는 동작의 단일 포인트 터치 이벤트 만 캡처합니다. 꼬집기를 위해 두 손가락이 내려간 상태에서 다운 터치를 구별하는 것은 불가능합니다.

뷰 호출기에 터치 리스너를 구현했지만 일련의 오류가 발생했습니다. 다음은 오류 다음에 오는 코드입니다.

viewPager.setOnTouchListener (새 OnTouchListener() {

@Override 
    public boolean onTouch(View v, MotionEvent event) { 
     Log.d("Action", "Action-Touch List "+Integer.toString(getAction(event.getAction()))); 
     int action = getAction(event.getAction()); 
     View vv =(View) viewPager.getChildAt(0); 
     ImageZoomView izv= (ImageZoomView) vv.findViewById(R.id.ViewImagePreview); 


     if (Float.compare(izv.getZoomState().getPanX(), 0.5f) == 0 
       && Float.compare(izv.getZoomState().getPanY(), 0.5f) == 0 
       && Float.compare(izv.getZoomState().getZoom(), 1.0f) == 0 
       && action != ACTION_MULTITOUCH_DOWN 
       && action != ACTION_MULTITOUCH_UP) { 

      **Error Here**viewPager.onTouchEvent(event); 
      return true; 
     } else { 

      izv.onTouchEvent(event); 
      return true; 

     } 

    } 
}); 

getaction는 어떤 도움을 주시면 감사하겠습니다 등

04-28 12:03:57.365: E/AndroidRuntime(6662): FATAL EXCEPTION: main 
04-28 12:03:57.365: E/AndroidRuntime(6662): java.lang.ArrayIndexOutOfBoundsException 
04-28 12:03:57.365: E/AndroidRuntime(6662):  at android.view.MotionEvent.getX(MotionEvent.java:907) 
04-28 12:03:57.365: E/AndroidRuntime(6662):  at android.support.v4.view.MotionEventCompatEclair.getX(MotionEventCompatEclair.java:32) 
04-28 12:03:57.365: E/AndroidRuntime(6662):  at android.support.v4.view.MotionEventCompat$EclairMotionEventVersionImpl.getX(MotionEventCompat.java:86) 
04-28 12:03:57.365: E/AndroidRuntime(6662):  at android.support.v4.view.MotionEventCompat.getX(MotionEventCompat.java:210) 
04-28 12:03:57.365: E/AndroidRuntime(6662):  at android.support.v4.view.ViewPager.onTouchEvent(ViewPager.java:1771) 
04-28 12:03:57.365: E/AndroidRuntime(6662):  at com.**See Double asterisk in above code) 

, 다수의 접촉에 대해 올바르게 작동합니다.

답변

0

이 그것은처럼 보인다 오류는 4가 아닌 Manifest 버전 3이 우연히 발생했기 때문에 오류였습니다. 여전히 부드러운 터치를 사용하도록 설정된 갤러리를 사용하려고합니다.

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />