แบบจุ่ม

ดื่มด่ํากับวิธีการใช้งานที่มากขึ้นในการป้อนข้อมูลจากผู้ใช้และสร้างอินเทอร์เฟซผู้ใช้ ซึ่งจะช่วยให้คุณสร้างประสบการณ์ที่ดีที่สุดได้ แต่เกี่ยวข้องกับผลงานมากที่สุด

หากคุณเพิ่งพัฒนา Glass เป็นครั้งแรก โปรดอ่านคู่มือที่สมจริงแทน เอกสารนั้นพูดถึงวิธีสร้างเครื่องแก้วที่สมบูรณ์ และมีแนวทางการทําตามแนวทางปฏิบัติแนะนําในการออกแบบของเรา

วิธีการทำงาน

รูปภาพสมจริงจะแสดงนอกไทม์ไลน์เพื่อให้คุณควบคุมประสบการณ์ของผู้ใช้ได้อย่างเต็มที่นับตั้งแต่ที่ Glass เปิดตัว

คุณจะได้ดื่มด่ําไปกับกิจกรรมมาตรฐานของ Android, เลย์เอาต์, วิดเจ็ต UI และแพลตฟอร์ม Android อื่นๆ และจากนั้นใช้ GDK เพื่อผสานรวมกับ Glass เช่น การผสานรวมคําสั่งเสียง การ์ดแบบ Glass และอื่นๆ

เมื่อเริ่มได้ดียิ่งขึ้น รูปภาพจะปรากฏที่ด้านบนสุดของไทม์ไลน์ เมื่อผู้ใช้ดื่มด่ําไปกับเกมแล้ว พวกเขาก็จะปัดลงโดยการปัดลง

ใช้เมื่อใด

ประสบการณ์ที่สมจริงเป็นประสบการณ์ที่ยอดเยี่ยมซึ่งต้องอาศัยความสนใจจากผู้ใช้ในระยะยาว โฆษณาประเภทนี้ทําให้คุณสร้าง UI เฉพาะทางที่ปรากฏนอกไทม์ไลน์เพื่อให้ผู้ใช้เจาะลึกประสบการณ์ที่กําหนดเองได้

คุณยังจําเป็นต้องสมจริงเมื่อต้องเขียนทับฟังก์ชันเฉพาะไทม์ไลน์ เช่น การปัดไปข้างหน้าและย้อนกลับ และการควบคุมระยะหมดเวลาหน้าจอ

อย่างไรก็ตาม โปรดคํานึงอยู่เสมอว่าจําเป็นต้องทําเช่นนั้นหรือไม่ เนื่องจากต้องสร้างสรรค์เนื้อหาเพิ่มและมีเวลาออกแบบนานขึ้น การ์ดสดมีฟีเจอร์และความสามารถที่เพียงพอสําหรับ Glassware ส่วนใหญ่

การดื่มด่ํา

คุณสร้างความสมจริงโดยใช้กิจกรรม Android มาตรฐาน แต่คํานึงถึงสิ่งต่อไปนี้เมื่อเขียนกิจกรรมสําหรับ Glass

  • ออกแบบ UI สําหรับหน้าจอขนาด 640 x 360 พิกเซล
  • ออกแบบการโต้ตอบใน Glass แทนการย้าย กิจกรรมจากอุปกรณ์ Android อื่นๆ
  • อย่าใช้ท่าทางสัมผัสที่ซับซ้อนหรือรูปแบบ UI
  • การปัดลงจะกลับไปในสแต็กกิจกรรมเสมอจนกว่าผู้ใช้จะไปถึงไทม์ไลน์ ซึ่งควรเหมือนกับปุ่มย้อนกลับของ Android ในสมาร์ทโฟนและแท็บเล็ต
  • สร้างไอคอนขนาด 50 x 50 พิกเซลและระบุสําหรับแอตทริบิวต์ android:icon ขององค์ประกอบ <activity> ในไฟล์ Manifest ของ Android ระบุข้อความสําหรับ android:label ด้วย ซึ่งจะทําให้รายการเมนูเสียงหรือหน้าจอสัมผัสที่เชื่อมโยงกับ Glassware หลายรายการแสดงชื่อและไอคอน Glassware เป็นตัวเลือกได้
  • ระบุ android:immersive="true" สําหรับองค์ประกอบ <activity> เพื่อให้รูปภาพมีสมาธิหลังจากที่หน้าจอเข้าสู่โหมดสลีปและตื่นนอน

การสร้างและแสดงเมนู

กระจกจะแสดงการจัดรูปแบบที่ถูกต้องสําหรับเมนูหากคุณสร้างด้วย API เมนูของ Android มาตรฐานภายในกิจกรรม

หากต้องการแสดงเมนูสําหรับกิจกรรม ให้สร้างทรัพยากรเมนูแล้วแสดงการทํางานของผู้ใช้ เช่น การแตะเมื่อกิจกรรมโฟกัส

การสร้างทรัพยากรเมนู

การสร้างทรัพยากรเมนูนั้นเหมือนกับในแพลตฟอร์ม Android แต่ปฏิบัติตามหลักเกณฑ์ต่อไปนี้

  • สําหรับรายการเมนูแต่ละรายการ ให้ใส่ไอคอนรายการในเมนูขนาด 50 x 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