غوطه ور شدن

Immersions راه های بیشتری برای مصرف ورودی کاربر و ایجاد رابط کاربری به شما می دهد. این به شما امکان می دهد بیشترین تجربه سفارشی را ایجاد کنید، اما بیشترین کار را شامل می شود.

اگر این اولین بار است که برای Glass توسعه می دهید، به جای آن راهنمای غوطه وری را بخوانید. این سند به چگونگی ساخت یک ظروف شیشه ای کامل با غوطه ور شدن، با پیروی از بهترین شیوه های طراحی ما می پردازد.

چگونه کار می کنند

غوطه وری ها خارج از خط زمانی نمایش داده می شوند و از زمانی که Glass غوطه وری را راه اندازی می کند، کنترل کاملی بر تجربه کاربر به شما می دهد.

شما با فعالیت‌های استاندارد اندروید، طرح‌بندی‌ها، ویجت‌های رابط کاربری و بقیه پلت‌فرم اندروید، برنامه‌های غوطه‌وری می‌سازید. سپس از GDK برای ادغام در تجربه Glass مانند ادغام دستورات صوتی، کارت های Glass-styled و موارد دیگر استفاده می کنید.

وقتی غوطه وری ها شروع می شوند، در بالای جدول زمانی ظاهر می شوند. وقتی کاربران کار غوطه ور شدن را تمام کردند، با کشیدن انگشت به سمت پایین به عقب برمی گردند.

چه زمانی از آنها استفاده کنید

غوطه ور شدن برای تجربه هایی که نیاز به توجه طولانی مدت کاربر دارد عالی هستند. آنها به شما این امکان را می دهند که یک UI تخصصی ایجاد کنید که خارج از خط زمانی ظاهر می شود، بنابراین کاربران می توانند عمیق تر در یک تجربه سفارشی کاوش کنند.

همچنین زمانی که نیاز به بازنویسی عملکردهای خاص خط زمانی مانند کشیدن انگشت به جلو و عقب و کنترل مهلت زمانی صفحه نمایش دارید، غوطه ور شدن نیز ضروری است.

با این حال، فقط در صورت لزوم از غوطه وری استفاده کنید، زیرا ساخت آنها به کار بیشتر و برای طراحی خوب نیاز به زمان بیشتری دارد. کارت‌های زنده ویژگی‌ها و قابلیت‌های کافی را برای اکثر انواع Glassware ارائه می‌دهند.

ایجاد غوطه وری

شما با استفاده از فعالیت‌های استاندارد Android ، غوطه‌وری ایجاد می‌کنید، اما هنگام نوشتن فعالیت‌ها برای Glass، موارد زیر را در نظر داشته باشید:

  • رابط های کاربری خود را برای یک صفحه نمایش 640 × 360 پیکسل طراحی کنید.
  • تعاملاتی را طراحی کنید که به جای انتقال فعالیت‌ها از سایر دستگاه‌های Android روی Glass معنا پیدا کند.
  • به حرکات لمسی پیچیده یا الگوهای رابط کاربری تکیه نکنید.
  • کشیدن انگشت به پایین همیشه به پشته فعالیت بازمی‌گردد تا زمانی که کاربران به خط زمانی برسند. این باید بسیار شبیه دکمه بازگشت اندروید در گوشی های هوشمند و تبلت ها عمل کند.
  • یک نماد 50 × 50 پیکسل ایجاد کنید و آن را برای ویژگی android:icon عنصر <activity> در مانیفست اندروید خود مشخص کنید. همچنین متنی را برای android:label مشخص کنید. این به یک آیتم منو صوتی یا لمسی که با چندین Glassware مرتبط است اجازه می دهد تا نام و نماد Glassware شما را به عنوان یک گزینه نشان دهد.
  • android:immersive="true" را برای عنصر <activity> خود مشخص کنید تا بعد از خواب و بیدار شدن صفحه نمایش، به غوطه ور شدن فوکوس شود.

ایجاد و نمایش منو

اگر منوها را با APIهای استاندارد منوی Android در داخل یک فعالیت بسازید، 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 مراجعه کنید.