การแมปค่าคงที่ HAL-API ที่นำมาใช้ใน ขั้นตอนที่ 2 ของรายการตรวจสอบระบบสัมผัสนั้นขับเคลื่อนโดยหลักการออกแบบ UX ที่แนะนำเป็นอย่างยิ่ง หลักการออกแบบ UX จะกำหนดรากฐานว่าจะใช้อย่างไร เมื่อใด และอะไรเมื่อใช้ API ระบบสัมผัสของ Android ดู การโต้ตอบการสัมผัสขั้นสูง: เมื่อใด ทำอะไร และอย่างไรของ 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
ชื่อของค่าคงที่แต่ละรายการอ้างอิงถึงกรณีการใช้งานเฉพาะ เช่น KEYBOARD_PRESS
หรือ LONG_PRESS
จำลองเหตุการณ์การกดปุ่มในโลกแห่งความเป็นจริง
การตอบสนองแบบสัมผัสของระบบสัมผัสของเหตุการณ์อินพุต (ปุ่มซอฟท์เสมือน) สามารถจำลองการกดปุ่มโดยใช้เอนทิตีทางกายภาพ (เช่น ปุ่มแข็งแบบกลไก)
เหตุการณ์อินพุต: โฟลว์การโต้ตอบแบบคู่
เหตุการณ์การคลิกได้รับการออกแบบมาเพื่อจำลองพฤติกรรมของปุ่มกลไก ซึ่ง กด แล้ว ปล่อย พลังงานที่รับรู้ของแรงกระตุ้นเชิงกลจากการกดปุ่มจะสูงกว่าพลังงานของการกดปุ่ม ดังนั้นการตอบสนองแบบสัมผัสสำหรับการกดปุ่มจึงแข็งแกร่งกว่าการตอบสนองแบบสัมผัสสำหรับการกดปุ่ม
รูปที่ 3 เอฟเฟกต์สัมผัสจากเหตุการณ์อินพุตไบนารี
ความแรงของการสัมผัส: ความสามารถในการกดปุ่ม
เหตุการณ์อินพุตที่มีการมีส่วนร่วมสั้นลงและเบาลงจะสัมพันธ์กับระบบสัมผัส ที่เบากว่า เหตุการณ์อินพุตที่มีการมีส่วนร่วมนานขึ้นและลึกขึ้นจะสัมพันธ์กับระบบสัมผัส ที่แข็งแกร่งยิ่งขึ้น
รูปที่ 4 เอฟเฟกต์แบบสัมผัสตามความสามารถในการจ่าย
จำลองพื้นผิวเสมือนในเหตุการณ์การป้อนข้อมูลด้วยท่าทาง
การป้อนข้อมูลตามท่าทาง (เช่น การสครับหรือการเลื่อน) สามารถจัดวางให้สอดคล้องกับพื้นผิวระบบสัมผัสเสมือนในขณะที่นิ้วกำลังเคลื่อนที่บนหน้าจอพร้อมกับ UI แบบภาพ ตัวอย่างเช่น การสร้างการตอบสนองแบบสัมผัสซ้ำ ๆ ในขณะที่นิ้วเคลื่อนที่ไปรอบๆ UI นาฬิกาด้วยเครื่องหมายถูกเสมือน องค์ประกอบ UI
เอฟเฟกต์สำหรับพื้นผิวสัมผัสเสมือนนั้นมีไว้เพื่อทำซ้ำ ซึ่งมักจะทำให้พลังงานที่รับรู้สูงกว่าแอมพลิจูด (เมื่อมีการเรียกเอฟเฟกต์ โดยไม่เกิดซ้ำ หรือ เพียงครั้งเดียว ) ด้วยเหตุนี้ ค่าคงที่ของระบบสัมผัสที่ออกแบบมาสำหรับพื้นผิวระบบสัมผัสเสมือน (เช่น CLOCK_TICK
หรือ TEXT_HANDLE_MOVE
) จึงต้องมี ความละเอียดอ่อน ในการให้ความรู้สึกของการเคลื่อนไหวผ่านสัญญาณซ้ำๆ
รูปที่ 5 เอฟเฟกต์ระบบสัมผัสเพื่อจำลองพื้นผิวเสมือน
รวมความรู้สึก
หากต้องการรวมความรู้สึกเชิงบวกหรือเชิงลบไว้ในเอฟเฟกต์ระบบสัมผัส ให้ใช้ความรู้สึกที่แรงกว่ากับความรู้สึกเชิงลบเพื่อดึงดูดความสนใจของผู้ใช้
รูปที่ 6 เอฟเฟกต์สัมผัสพร้อมความรู้สึก
หลีกเลี่ยงเสียงรบกวนจากการสั่นสะเทือนเป็นเวลานาน
เพื่อหลีกเลี่ยงเสียงรบกวนจากการสั่นสะเทือนที่ยาวนานสำหรับระบบสัมผัสแบบตั้งใจ ให้เร่งรูปแบบอย่างราบรื่นเพื่อสร้างเอฟเฟกต์ทางลาดขึ้น ทำสิ่งนี้ได้โดยใช้ createWaveform(long[] timings, int[] amplitudes, int repeat)
รูปที่ 7 เอฟเฟกต์การเพิ่มระดับการสั่นสะเทือนแบบยาว