ดื่มด่ํากับวิธีการใช้งานที่มากขึ้นในการป้อนข้อมูลจากผู้ใช้และสร้างอินเทอร์เฟซผู้ใช้ ซึ่งจะช่วยให้คุณสร้างประสบการณ์ที่ดีที่สุดได้ แต่เกี่ยวข้องกับผลงานมากที่สุด
หากคุณเพิ่งพัฒนา 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
ประกอบด้วยโค้ดเรียกกลับที่คุณลบล้างเพื่อจัดการการสร้างเมนู การแสดงผล และการแยกส่วนต่อไปนี้
onCreateOptionsMenu()
ขยายทรัพยากรเมนู XMLonPrepareOptionsMenu()
แสดงหรือซ่อนรายการในเมนู หากจําเป็น เช่น คุณอาจแสดงรายการในเมนูที่แตกต่างกัน โดยอิงตามสิ่งที่ผู้ใช้กําลังทํา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