몰입

몰입감은 사용자 입력을 소비하고 사용자 인터페이스를 만드는 더 많은 방법을 제공합니다. 이를 통해 가장 많은 맞춤 작업이 필요하지만 대부분의 작업이 필요합니다.

Glass용으로 처음 개발하는 경우에는 대신 몰입 가이드를 읽어보세요. 이 문서에서는 Google의 디자인 권장사항에 따라 몰입도가 높은 전체 Glass 소프트웨어를 빌드하는 방법을 설명합니다.

작동 방식

이 타임라인은 타임라인 외부에 표시되므로 몰입도가 시작되는 시점부터 사용자 환경을 완전히 제어할 수 있습니다.

표준 Android 활동, 레이아웃, UI 위젯 및 나머지 Android 플랫폼을 사용하여 몰입도를 높입니다. 그런 다음 GDK를 사용하여 음성 명령, Glass 스타일의 카드 등과 같은 Glass 환경에 통합합니다.

몰입이 시작되면 타임라인 상단에 표시됩니다. 몰입이 끝나면 아래로 스와이프해 나갑니다.

용도

몰입은 장시간 사용자의 주의가 필요한 경험에 적합합니다. 이를 통해 타임라인 외부에 표시되는 특수 UI를 만들 수 있으므로 사용자가 맞춤설정된 환경을 더 자세히 알아볼 수 있습니다.

몰입감은 앞으로 및 뒤로 스와이프하고 화면 시간 제한 제어와 같은 타임라인 관련 기능을 덮어써야 할 때도 필요합니다.

그러나 몰입감은 꼭 필요한 경우에만 사용합니다. 빌드에는 더 많은 작업이 필요하고, 효과적으로 설계하는 데 더 많은 시간이 필요하기 때문입니다. 라이브 카드는 대부분의 Glass 소프트웨어 유형에 충분한 기능을 제공합니다.

몰입형 제작

표준 Android 활동을 사용하여 몰입도를 생성하지만 Glass용 활동을 작성할 때는 다음 사항에 유의하세요.

  • 640 × 360 픽셀 화면의 UI를 디자인하세요.
  • 다른 Android 기기의 활동을 포팅하는 대신 Glass에서 적절한 상호작용을 설계합니다.
  • 복잡한 터치 동작이나 UI 패턴에 의존하지 마세요.
  • 스와이프는 사용자가 타임라인에 도달할 때까지 항상 활동 스택으로 돌아갑니다. 스마트폰과 태블릿의 Android 뒤로 버튼과 비슷하게 작동합니다.
  • 50×50픽셀 아이콘을 만들고 Android 매니페스트에 있는 <activity> 요소의 android:icon 속성에 지정합니다. android:label의 텍스트도 지정합니다. 이를 통해 여러 Glass 소프트웨어와 연결된 음성 또는 터치 메뉴 항목에서 Glass 소프트웨어의 이름과 아이콘을 옵션으로 표시할 수 있습니다.
  • <activity> 요소에 android:immersive="true"를 지정하여 화면이 절전 모드 후 해제되면 몰입형 포커스를 제공합니다.

메뉴 만들기 및 표시

Glass가 활동 내부의 표준 Android 메뉴 API로 메뉴를 빌드하는 경우 메뉴의 올바른 스타일을 표시합니다.

활동의 메뉴를 표시하려면 메뉴 리소스를 만든 후 사용자 포커스가 있을 때(예: 활동에 포커스가 있을 때 탭) 메뉴를 표시합니다.

메뉴 리소스 만들기

메뉴 리소스를 만드는 방법은 Android 플랫폼에서 만드는 방법과 동일하지만 다음 가이드라인을 따르세요.

  • 각 메뉴 항목에 50×50픽셀 메뉴 항목 아이콘을 제공하세요. 메뉴 아이콘은 투명한 배경에 흰색이어야 합니다. 예시로 사용하거나 사용하려면 Glass 메뉴 아이콘을 다운로드하세요.
  • 작업을 설명하고 문장의 첫 구문에 해당하는 짧은 문구를 사용하세요. 명령형 동사 (예: '공유' 또는 '전체 답장')를 사용하는 것이 좋습니다.

다음과 같은 간단한 방법으로 시작할 수 있습니다.

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/reply_menu_item"
        android:title="@string/reply"                <!-- imperative verb -->
        android:icon="@drawable/icons_50_reply" />   <!-- white in color on
                                                     transparent background
                                                     -->
</menu>

Android 메뉴 만들기에 관한 자세한 내용은 Android SDK 문서의 메뉴 주제를 참고하세요.

메뉴 콜백 처리

Activity 클래스에는 메뉴 생성, 디스플레이, 해제를 처리하기 위해 재정의하는 콜백이 포함됩니다.

  1. onCreateOptionsMenu()는 XML 메뉴 리소스를 확장합니다.
  2. onPrepareOptionsMenu()은 필요한 경우 메뉴 항목을 표시하거나 숨깁니다. 예를 들어 사용자의 작업에 따라 다양한 메뉴 항목을 표시할 수 있습니다.
  3. onOptionsItemSelected()는 사용자 선택을 처리합니다.

    public class MyActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.stopwatch, menu);
            return true;
        }
    
        @Override
        public boolean onPrepareOptionsMenu(Menu menu) {
            // Implement if needed
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle item selection. Menu items typically start another
            // activity, start a service, or broadcast another intent.
            switch (item.getItemId()) {
                case R.id.stop:
                    startActivity(new Intent(this,
                    StopStopWatchActivity.class));
                    return true;
                default:
                    return super.onOptionsItemSelected(item);
            }
        }
    }
    

메뉴 표시

메뉴를 표시하려면 터치패드 탭하기와 같은 경우 필요한 경우 openOptionsMenu()를 호출합니다. 다음 예에서는 활동에서 탭 동작을 감지한 다음 openOptionsMenu()를 호출합니다.

public class MainActivity extends Activity {
    // ...
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
          if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
              openOptionsMenu();
              return true;
          }
          return super.onKeyDown(keyCode, event);
    }
}

일부 도우미 메서드를 사용하여 메뉴의 모양과 동작을 수정할 수 있습니다. 자세한 내용은 MenuUtils을 참조하세요.