2013-01-14 1 views
2

사용자의 서명 (John Hancock)을 캡처하는 사용자 지정보기가 있습니다. 가능한 한 애플리케이션에 액세스 할 수 있기를 바랍니다. TalkBackExplore-by-Touch에 대한 화면을 최적화하기 위해 특별히 신경을 씁니다. 탐색 버튼은 모든 손가락 동작을 두 손가락 동작으로 변경하므로 사용자 지정 서명보기가 손상됩니다.탐색별로 터치가 활성화되어있을 때 어떻게 포인터를 제스처 할 수 있습니까?

내가하고 싶은 것이 탐색 버튼은 호버에 대한보기의 콘텐츠 설명을 알리고 사용자가 두 번 살짝 누르면보기를 활성화합니다. 이렇게하면 일반 사용자처럼 단일 포인터로 뷰 상단에 그림을 그릴 수 있습니다.

검색 한 적이 있지만 Android 접근성 라이브러리에 대한 자세한 설명서를 찾기가 어렵습니다. 어떤 아이디어?

답변

8

터치하여 탐색을 사용하면 한 손가락 터치 이벤트가 호버 이벤트로 변환됩니다. OnHoverListener을보기에 추가하거나 View.onHoverEvent을 무시하여 이러한 이벤트를 볼 수 있습니다.

이러한 이벤트를 가로 채고 나면 일반적으로 정상적인 터치 핸들링 코드에이를 전달하고 마우스 오버 조치에서 터치 액션 (아래 참조)으로 매핑 할 수 있습니다.

@Override 
public boolean onHoverEvent(MotionEvent event) { 
    if (mAccessibilityManager.isTouchExplorationEnabled()) { 
     return onTouchEvent(event); 
    } else { 
     return super.onHoverEvent(event); 
    } 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
     case MotionEvent.ACTION_HOVER_ENTER: 
      return handleDown(event); 
     case MotionEvent.ACTION_MOVE: 
     case MotionEvent.ACTION_HOVER_MOVE: 
      return handleMove(event); 
     case MotionEvent.ACTION_UP: 
     case MotionEvent.ACTION_HOVER_EXIT: 
      return handleUp(event); 
    } 

    return false; 
} 
+0

굉장! 나는 이것을 시도 할 것이다. – twaddington

+0

일하는 것 같습니다. 첫 번째 호버 이벤트에는 약간의 지연이 있지만 큰 문제는 아닙니다. – twaddington

+0

이 대답은 내 큰 문제를 해결 여기에 : http://stackoverflow.com/q/35165206/2813238 큰 감사! – Mohammad

관련 문제