การออกแบบ UX ของการโต้ตอบการสัมผัส

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