การแมปค่าคงที่ HAL-API ที่แนะนำในขั้นตอนที่ 2 ของรายการตรวจสอบการสัมผัสจะอิงตามหลักการการออกแบบ UX ที่แนะนําอย่างยิ่ง หลักการทําการออกแบบ UX จะกําหนดรากฐานของวิธี เมื่อใด และควรใช้อะไรเมื่อใช้ Android Haptics API ดูข้อมูลเพิ่มเติมเกี่ยวกับหลักการพื้นฐานเหล่านี้ได้ในบทความการสัมผัสขั้นสูง: กรณีการใช้งาน ข้อมูล และวิธีใช้ Haptic API ใหม่
รูปที่ 1 การแมปค่าคงที่ HAL-API: โมเดลแบบไม่ต่อเนื่อง
เลือกเอฟเฟกต์การสัมผัส
ตามระดับการโต้ตอบการสัมผัส (VibrationEffect
)
EFFECT_CLICK
คือจุดเริ่มต้นที่ดีที่สุดในการกำหนดระดับการสัมผัสที่ต้องการ (VibrationEffect
) เนื่องจากเป็นค่ามัธยฐานระหว่างการสัมผัส "เบา" ของ EFFECT_TICK
กับการสัมผัส "หนัก" ของ EFFECT_HEAVY_CLICK
เมื่อเริ่มต้นด้วย EFFECT_CLICK
คุณจะเพิ่มหรือลดพลังงานเชิงแนวคิดได้โดยการเพิ่มค่าความแรงด้วย EFFECT_HEAVY_CLICK
หรือลดค่าความแรงด้วย EFFECT_TICK
โปรดทราบว่า EFFECT_DOUBLE_CLICK
สื่อถึงแนวคิดที่มีประสิทธิภาพสูงสุดเนื่องจากมีการพูดซ้ำ
รูปที่ 2 การตั้งค่าระดับการสัมผัส
ตามเหตุการณ์การป้อนข้อมูลและองค์ประกอบ UI (HapticFeedbackConstants
)
หากเป้าหมายเชื่อมโยงกับเหตุการณ์อินพุตที่เฉพาะเจาะจง (เช่น การกดค้างหรือการปัด) หรือองค์ประกอบ UI (เช่น แป้นพิมพ์) ให้ค้นหาค่าคงที่ของการสัมผัสที่กำหนดไว้ล่วงหน้าใน HapticFeedbackConstants
ชื่อของค่าคงที่แต่ละรายการหมายถึง Use Case ที่เฉพาะเจาะจง เช่น KEYBOARD_PRESS
หรือ
LONG_PRESS
จำลองเหตุการณ์การกดปุ่มในชีวิตจริง
การสัมผัสที่ตอบสนองต่อการสัมผัสของเหตุการณ์อินพุต (ปุ่มเสมือนจริง) สามารถจำลองการกดปุ่มโดยใช้เอนทิตีที่จับต้องได้ (เช่น ปุ่มแบบกดแบบกลไก)
เหตุการณ์การป้อนข้อมูล: ขั้นตอนการโต้ตอบแบบคู่
เหตุการณ์คลิกออกแบบมาเพื่อจําลองลักษณะการทํางานของปุ่มกลไก ซึ่งกดแล้วปล่อย พลังงานที่รับรู้ของแรงกระตุ้นเชิงกลจากการกดปุ่มสูงกว่าการปล่อยปุ่ม ดังนั้น การตอบสนองแบบสัมผัสสำหรับการกดปุ่มจึงมีความรุนแรงมากกว่าการตอบสนองแบบสัมผัสสำหรับการปล่อยปุ่ม
รูปที่ 3 เอฟเฟกต์การสัมผัสตามเหตุการณ์การป้อนข้อมูลแบบไบนารี
แรงสัมผัส: ความสามารถในการกดปุ่ม
เหตุการณ์อินพุตที่มีการมีส่วนร่วมสั้นและเบาจะเชื่อมโยงกับการสัมผัสที่เบา เหตุการณ์อินพุตที่มีการมีส่วนร่วมนานขึ้นและลึกขึ้นจะเชื่อมโยงกับการสัมผัสที่แรงขึ้น
รูปที่ 4 ผลสัมผัสตามการเอื้ออำนวย
จำลองพื้นผิวเสมือนจริงในเหตุการณ์การป้อนข้อมูลด้วยท่าทางสัมผัส
อินพุตตามท่าทางสัมผัส (เช่น การสไลด์หรือเลื่อน) สามารถปรับให้สอดคล้องกับพื้นผิวสัมผัสเสมือนจริงขณะที่นิ้วกำลังเคลื่อนไหวบนหน้าจอพร้อมกับ UI ภาพ เช่น การสร้างการตอบกลับแบบสัมผัสซ้ำๆ ขณะที่นิ้วกำลังเลื่อนไปรอบๆ UI นาฬิกาที่มีองค์ประกอบ UI เครื่องหมายขีดเสมือนจริง
เอฟเฟกต์สำหรับพื้นผิวสัมผัสเสมือนจริงมีไว้เพื่อให้เล่นซ้ำ ซึ่งมักจะทำให้การรับรู้ของพลังงานสูงกว่าแอมพลิจูด (เมื่อมีการเรียกเอฟเฟกต์ดังกล่าวโดยไม่มีการกล่าวซ้ำๆ หรือเพียงครั้งเดียว) ด้วยเหตุนี้ ค่าคงที่ของสัมผัสที่ออกแบบมาสำหรับพื้นผิวสัมผัสเสมือนจริง (เช่น CLOCK_TICK
หรือ TEXT_HANDLE_MOVE
) จึงต้องละเอียดอ่อนเพื่อให้ความรู้สึกเคลื่อนไหวผ่านสัญญาณซ้ำๆ
รูปที่ 5 เอฟเฟกต์การสัมผัสเพื่อจำลองพื้นผิวเสมือนจริง
ใส่ความรู้สึก
หากต้องการใส่ความรู้สึกเชิงบวกหรือเชิงลบไว้ในเอฟเฟกต์การสัมผัส ให้ใช้ความรู้สึกที่แรงขึ้นกับความรู้สึกเชิงลบเพื่อดึงดูดความสนใจของผู้ใช้
รูปที่ 6 ผลลัพธ์ของการสัมผัสที่มีความรู้สึก
หลีกเลี่ยงเสียงรบกวนจากการสั่นเป็นเวลานาน
หากต้องการหลีกเลี่ยงเสียงรบกวนจากการสั่นเป็นเวลานานสำหรับสัมผัสเพื่อดึงดูดความสนใจ ให้เร่งรูปแบบอย่างราบรื่นเพื่อสร้างเอฟเฟกต์การเร่งขึ้น โดยใช้
createWaveform(long[] timings, int[] amplitudes, int repeat)
รูปที่ 7 เอฟเฟกต์การสั่นที่เพิ่มขึ้นเรื่อยๆ