การออกแบบ 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 เอฟเฟกต์การสั่นยาวที่ค่อยๆ แรงขึ้น