나는 그림 호출기를 사용하여 그림 갤러리를 만들고 있습니다. 현재 사용자가 꼬집고 확대/축소 및 이동하는 데 사용할 수있는 사용자 지정 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)
, 다수의 접촉에 대해 올바르게 작동합니다.