2014-10-25 2 views
0

GDK로 지금 바로 버튼을 표시 할 수 있습니까? 나는 예를 들어 몇 개의 카드로 나누고 싶은 텍스트의 상당 부분을 가지고있다.CardBuilder 더 많은 텍스트 표시

도움 주셔서 감사합니다.

답변

3

Google Glass의 문제는 사용자가 생각하는대로 실제로 '버튼'을 할 수 없다는 것입니다. 화면의 특정 부분을 탭할 수 없습니다. 아래, 위, 왼쪽, 오른쪽, 탭 만 스 와이프 할 수 있습니다.

할 수있는 일은 가능한 제스처를 듣고 그에 따라 행동하는 것입니다. TextBox을 만들어서 스 와이프에서 스크롤하고 스크롤 할 수 있습니다. 또는 다음 카드로 이동하거나 탭하면 카드의 텍스트를 업데이트하십시오. 다음은 이러한 작업을 감지하는 방법입니다.

GestureDetector를 만들어야합니다. 여기 내 프로젝트에서 어떻게해야합니까?

public class EXAMPLE { 
    private GestureDetector gestureDetector; 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     gestureDetector = createGestureDetector(this); 

    } 
    private GestureDetector createGestureDetector(Context context) { 
     GestureDetector gestureDetectorTemp = new GestureDetector(context, new GestureDetector.OnGestureListener() { 
      @Override 
      public boolean onDown(MotionEvent motionEvent) { 
       return false; 
      } 

      @Override 
      public void onShowPress(MotionEvent motionEvent) { 
       return false; 
      } 

      @Override 
      public boolean onSingleTapUp(MotionEvent motionEvent) { 
       return false; 
      } 
      @Override 
      public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent2, float distanceX, float distanceY) { 
       return false; 
      } 
      @Override 
      public void onLongPress(MotionEvent motionEvent) { 
      } 
      @Override 
      public boolean onFling(MotionEvent motionEvent, MotionEvent motionEvent2, float v, float v2) { 
      return false; 
      } 
     }); 
     return gestureDetectorTemp; 
    } 

    @Override 
    public boolean onGenericMotionEvent(MotionEvent event) { 
     if (gestureDetector != null) { 
      return gestureDetector.onTouchEvent(event); 
     } 
     return false; 
    } 
} 

마지막 부분은 매우 중요합니다. 일반 모션 이벤트에서 gestureDetector이 null이 아닌 경우 처리를 위해 gestureDetector을 통해 이벤트를 보냅니다.

계속 하시려면 return false;return true;의 의미를 이해해야합니다. false를 반환하면 이벤트가 사용되지 않았 음을 의미합니다. true를 반환하면 이벤트가 소비됩니다. 즉, true를 반환하면 이벤트가 '먹 힙니다'때문에 아무 것도 활성화되지 않지만 false를 반환하면 이벤트가 액션을 수행 할 때 다른 작업으로 전송됩니다.

지금 그냥 ... 당신의 배열로 긴 텍스트를 분할 할 수

textView.setText(nextSetOfText); 

card.setText(nextSetOfText); 

또는

같은 것을이 걸릴 당신이 원하는 일을 할 수 onSingleTapUp() 방법의 내용을 변경할 문자열에 맞출 수있는 최대 길이를 가진 문자열. 그러면 사람이 탭 할 때 배열의 다음 문자열로 순환합니다.

+0

아직 질문에 대한 업데이트가 없거나 긴 텍스트를 표시하는 유일한 방법 일 수 있습니다. –

관련 문제