การแมปค่าคงที่ HAL-API ที่นำมาใช้ใน ขั้นตอนที่ 2 ของรายการตรวจสอบการสั่นนั้นขับเคลื่อนโดยหลักการออกแบบ UX ที่แนะนำเป็นอย่างยิ่ง หลักการออกแบบ UX กำหนดรากฐานของวิธีการ เวลา และสิ่งที่จะใช้เมื่อใช้ Android haptics API ดู Haptics ขั้นสูง: เมื่อใด อะไร และอย่างไรของ 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 เอฟเฟกต์ทางลาดขึ้นการสั่นสะเทือนที่ยาวนาน