หน้านี้แสดงการแมปที่แนะนำระหว่างค่าคงที่ HAL สาธารณะและค่าคงที่ API หากฮาร์ดแวร์ที่ประเมินไม่ได้ใช้ค่าคงที่ HAL ให้อัปเดตรูปแบบสำรองที่อธิบายไว้ในหน้าใช้ค่าคงที่และพรอมต์เพื่อสร้างเอาต์พุตที่คล้ายกัน การแมปได้รับความช่วยเหลือจากรูปแบบเริ่มต้น 2 แบบ ดังนี้
โมเดลแบบไม่ต่อเนื่อง (แบบง่าย)
- Amplitude คือตัวแปรหลักของรูปแบบนี้ เอนทิตีแต่ละรายการใน HAL จะแสดงถึงแอมพลิจูดของการสัมผัสที่แตกต่างกัน
- โมเดลนี้เป็นข้อกำหนดขั้นต่ำที่จำเป็นในการใช้ UX สัมผัสพื้นฐาน
- UX ของการสัมผัสขั้นสูงขึ้นต้องใช้ฮาร์ดแวร์ขั้นสูงและรุ่นขั้นสูง (รุ่นต่อเนื่อง)
โมเดลต่อเนื่อง (ขั้นสูง)
- พื้นผิวและความกว้างเป็นตัวแปรหลักของโมเดลนี้ เอนทิตีแต่ละรายการใน HAL จะแสดงพื้นผิวสัมผัสที่แตกต่างกัน แอมพลิจูดของเอนทิตี้ HAL แต่ละรายการจะควบคุมโดยปัจจัยการขยาย (
S
) - รุ่นนี้ต้องใช้ฮาร์ดแวร์ขั้นสูง หาก OEM ต้องการใช้ UX ของการสัมผัสขั้นสูงกับ
VibrationEffect.Composition
(เพื่อการใช้ API การสัมผัสล่าสุดอย่างเต็มประสิทธิภาพ) เราขอแนะนำให้ติดตั้งใช้งานฮาร์ดแวร์โดยใช้รูปแบบนี้
- พื้นผิวและความกว้างเป็นตัวแปรหลักของโมเดลนี้ เอนทิตีแต่ละรายการใน HAL จะแสดงพื้นผิวสัมผัสที่แตกต่างกัน แอมพลิจูดของเอนทิตี้ HAL แต่ละรายการจะควบคุมโดยปัจจัยการขยาย (
โมเดลแบบไม่ต่อเนื่อง
เราขอแนะนําให้แมปค่าคงที่สาธารณะทั้งหมดที่ระบุไว้ใน API กับค่าคงที่ HAL ที่เหมาะสม ในการเริ่มกระบวนการนี้ ให้ดูว่าอุปกรณ์กำหนดรูปแบบสัมผัสที่มีแอมพลิจูดแบบไม่ต่อเนื่องได้กี่รูปแบบใน HAL คำถามที่เฉพาะเจาะจงซึ่งสร้างขึ้นจากแนวคิดนี้มีลักษณะดังนี้ ฉันกำหนดเอฟเฟกต์การสัมผัสแบบแรงกระตุ้นเดียวที่มีความแตกต่างของระดับความดังที่มนุษย์รับรู้ได้ในโทรศัพท์ได้กี่รายการ คำตอบของคําถามนี้จะกําหนดการแมป
การกําหนดค่าคงที่ HAL เป็นกระบวนการที่ขึ้นอยู่กับฮาร์ดแวร์ ตัวอย่างเช่น โทรศัพท์ระดับเริ่มต้นอาจมีเพียงความสามารถของฮาร์ดแวร์ในการสร้างรูปแบบการสัมผัสแบบเดียว อุปกรณ์ที่มีคอมโพเนนต์ฮาร์ดแวร์ขั้นสูงจะสร้างระดับแอมพลิจูดแบบไม่ต่อเนื่องได้กว้างขึ้น และกำหนดรูปแบบการสั่นแบบสัมผัสได้หลายรูปแบบใน HAL การแมปค่าคงที่ HAL-API จะใช้ค่าคงที่ HAL (โดยใช้ความกว้างของสัญญาณเป็นฐาน) จากนั้นจัดเรียงเอฟเฟกต์ที่แรงขึ้นหรืออ่อนลงจากค่านั้น
รูปที่ 14 ช่วงค่าคงที่ HAL ตามแอมพลิจูด
เมื่อกําหนดจํานวนค่าคงที่ HAL ที่มีแอมพลิจูดแบบไม่ต่อเนื่องแล้ว ก็ถึงเวลาจับคู่ค่าคงที่ HAL และ API ตามจํานวนค่าคงที่ HAL กระบวนการแมปนี้สามารถแบ่งกลุ่มค่าคงที่ API แบบอิมพัลส์รายการเดียวออกเป็นกลุ่มระดับแอมพลิจูดแบบแยกต่างหากได้สูงสุด 3 กลุ่ม วิธีที่แบ่งกลุ่มค่าคงที่ของ API จะอิงตามหลักการ UX สําหรับเหตุการณ์อินพุตที่มาพร้อมกับ ดูข้อมูลเพิ่มเติมได้ที่การสัมผัส การออกแบบ UX
รูปที่ 15 การแมปค่าคงที่ HAL-API: โมเดลแบบไม่ต่อเนื่อง
หากอุปกรณ์รองรับค่าคงที่ HAL เพียง 2 ค่าที่มีระดับความกว้างของคลื่นแบบไม่ต่อเนื่อง ให้พิจารณาผสานค่าคงที่ HAL ระดับความกว้างของคลื่นปานกลางและสูง ตัวอย่างแนวคิดนี้ในทางปฏิบัติคือการแมป EFFECT_CLICK
และ EFFECT_HEAVY_CLICK
กับค่าคงที่ HAL เดียวกัน ซึ่งจะเป็นค่าคงที่ HAL ระดับความกว้างของคลื่นปานกลาง หากอุปกรณ์รองรับค่าคงที่ HAL รายการเดียวที่มีระดับความดังแบบไม่ต่อเนื่อง ให้พิจารณารวมระดับทั้ง 3 ระดับเข้าด้วยกัน
รูปแบบต่อเนื่อง
คุณสามารถใช้รูปแบบต่อเนื่องที่ปรับขนาดแอมพลิจูดได้เพื่อกำหนดค่าคงที่ HAL
ปัจจัยการแปลง (S
) สามารถใช้กับค่าคงที่ HAL (เช่น HAL_H0
, HAL_H1
) เพื่อสร้าง HAL ที่ปรับขนาด (HAL_H0
x S
) ในกรณีนี้ HAL ที่ปรับขนาดจะแมปกับค่าคงที่ API (HAL_H0
x S1
= H0S1
= EFFECT_TICK
) ดังที่แสดงในรูปที่ 16 การใช้การปรับขนาดความกว้างของรูปแบบต่อเนื่องช่วยให้อุปกรณ์จัดเก็บค่าคงที่ HAL เพียงไม่กี่ค่าที่มีพื้นผิวที่โดดเด่น และเพิ่มรูปแบบความกว้างที่แตกต่างกันได้โดยการปรับปัจจัยการขยาย (S
) ผู้ผลิตอุปกรณ์สามารถกำหนดจำนวนค่าคงที่ HAL ตามจำนวนพื้นผิวสัมผัสที่แตกต่างกันที่ต้องการนำเสนอ
รูปที่ 16 ช่วงค่าคงที่ HAL ตามพื้นผิว (HAL_H0) และมาตราส่วนแอมพลิจูด (S)
รูปที่ 17 การแมปค่าคงที่ HAL-API: โมเดลแบบต่อเนื่อง
ในโมเดลแบบต่อเนื่อง ค่าคงที่ HAL ที่แตกต่างกันจะแสดงพื้นผิวสัมผัสที่แตกต่างกัน ไม่ใช่ความกว้างของสัญญาณที่แตกต่างกัน ปัจจัยการขยาย (S
) สามารถกำหนดค่าความกว้างของสัญญาณได้ อย่างไรก็ตาม เนื่องจากการรับรู้พื้นผิว (เช่น ความคมชัด) เกี่ยวข้องกับการรับรู้ระยะเวลาและความกว้าง เราจึงขอแนะนำให้รวมพื้นผิวและปัจจัยการขยาย (ในกระบวนการออกแบบการแมป HAL-API)
รูปที่ 18 แสดงการแมปค่าคงที่โดยการเพิ่มความหลากหลายจาก HAL 1 รายการเป็นค่าคงที่ API หลายรายการที่มีความยืดหยุ่นของระดับความดัง
รูปที่ 18 การเพิ่มรูปแบบด้วยการปรับขนาดแอมพลิจูด
สําหรับค่าคงที่ API ที่ปรับขนาดได้ทั้งหมด เช่น PRIMITIVE_TICK
และ PRIMITIVE_CLICK
ใน VibrationEffect.Composition
ระดับพลังงานของค่าคงที่ API จะขึ้นอยู่กับพารามิเตอร์ float scale
เมื่อมีการประกาศค่าคงที่ API ผ่าน addPrimitive(int primitiveID, float scale,
int delay)
PRIMITIVE_TICK
และ PRIMITIVE_CLICK
สามารถออกแบบให้แตกต่างกันอย่างชัดเจนได้โดยใช้ค่าคงที่ HAL ที่ต่างกัน ขอแนะนําให้ใช้แนวทางนี้หากต้องการเพิ่มความหลากหลายให้กับพื้นผิว