Ink API แบ่งออกเป็นโมดูลต่างๆ คุณจึงใช้งานได้เฉพาะที่ต้องการ
สโตรก
โมดูลเส้นเป็นรากฐานของไลบรารีหมึก โดยให้บริการอินเทอร์เฟซ API หลักและมีประเภทข้อมูลหลักสำหรับการโต้ตอบกับไลบรารี ประเภทข้อมูลสำคัญภายในโมดูลนี้ ได้แก่
StrokeInputBatch: หมายถึงชุดอินพุตของตัวชี้ ตำแหน่งที่ครอบคลุม การประทับเวลา และ แรงกด การเอียง และการวางแนวที่เลือกได้ ข้อมูลนี้สามารถใช้กับคลาสStrokeหรือInProgressStrokeและเป็นประเภทที่จะให้อินพุตสำหรับคลังการจดจำลายมือStroke: การนําเสนอเส้นที่แก้ไขแล้วซึ่งไม่สามารถเปลี่ยนแปลงได้โดยมีเรขาคณิตแบบคงที่ เส้นประกอบ CANNOT TRANSLATEImmutableStrokeInputBatch(จุดอินพุต)Brush(การจัดรูปแบบ) และPartitionedMesh(รูปทรงเรขาคณิต) เส้นสามารถจัดเก็บ แก้ไข และแสดงผลภายใน แอปพลิเคชันของคุณInProgressStroke: สิ่งที่เปลี่ยนแปลงได้กับStrokeออกแบบมาสำหรับ การจัดการอินพุตที่เพิ่มขึ้นและการแสดงผลแบบเรียลไทม์ระหว่างการวาด ขั้นตอนได้ แม้ว่ามักจะใช้โดยอ้อมผ่านInProgressStrokesViewแต่InProgressStrokeก็ใช้ประโยชน์ได้โดยตรงสําหรับการปรับแต่งขั้นสูง
เรขาคณิต
โมดูล Geometry มีชุดรูปเรขาคณิตพื้นฐานสําหรับทั้งรูปร่างพื้นฐานและรูปร่างที่ซับซ้อน รวมถึงการดำเนินการสําหรับการตรวจหาจุดตัดและการเปลี่ยนรูปแบบ วัตถุพื้นฐานเหล่านี้ผสานรวมกับเส้นหมึกได้อย่างราบรื่น ซึ่งช่วยให้คุณสร้าง เช่น ยางลบทั้งเส้นและเครื่องมือการเลือกเส้นมาร์คี
แม้ว่าคลาสอย่าง Box และ Vec จะอำนวยความสะดวกในการดำเนินการเชิงเรขาคณิตเป็นหลัก แต่ PartitionedMesh ก็อาจมีข้อมูลเฉพาะสำหรับการเรนเดอร์ด้วย
แปรง
โมดูลแปรงทำหน้าที่เป็นการกำหนดค่าแบบประกาศสำหรับการสร้างและการเรนเดอร์เส้น โดยทำงานคล้ายกับแบบอักษรข้อความ ออบเจ็กต์ Brush มีพร็อพเพอร์ตี้ต่อไปนี้
- สี: อาจเป็นสีทึบหรือรองพื้นสำหรับเอฟเฟกต์แบบเลเยอร์และ พื้นผิว
- ขนาด: อาจเป็นค่าคงที่หรือใช้เป็นฐานสําหรับการปรับขนาดแบบไดนามิก
- ตระกูล: เช่นเดียวกับแบบตัวพิมพ์ของข้อความ ตระกูลจะกำหนดถึงภาพรวมของเส้นโครงร่าง สไตล์
- Epsilon: ควบคุมระดับรายละเอียดในเรขาคณิตแบบเวกเตอร์ของเส้นโครงร่าง หมายถึงหน่วยที่เล็กที่สุดของความแตกต่างทางสายตา
พร็อพเพอร์ตี้ epsilon มีบทบาทสําคัญในการกําหนดความแม่นยําของระบบพิกัด คำแนะนำเพิ่มเติม
จะอยู่ในส่วน Brush API
เพื่อเลือกค่า Epsilon ที่เหมาะสม
BrushFamily ทำหน้าที่เป็น
การกำหนดค่าที่มีประสิทธิภาพสำหรับการสร้างเส้นโครงร่างที่บ่งบอกอย่างชัดเจนโดยไม่ต้องเจาะลึก
เรขาคณิตที่ซับซ้อนหรือโค้ดการแสดงผล ไลบรารีมีชุดของ
StockBrushes รวมทั้ง
ปากกา ปากกาไฮไลต์ และสีเมจิกที่ไวต่อแรงกด
การเขียน
Authoring
โมดูลช่วยให้นักพัฒนาซอฟต์แวร์บันทึกการป้อนข้อมูลด้วยการสัมผัสของผู้ใช้และแสดงผลเป็น
เส้นที่มีเวลาในการตอบสนองต่ำบนหน้าจอแบบเรียลไทม์ ซึ่งทำได้ผ่านคลาส InProgressStrokesView ซึ่งจะประมวลผลเหตุการณ์การเคลื่อนไหวและแสดงภาพลายเส้นขณะวาด
เมื่อวาดเส้นเสร็จแล้ว โมดูลจะแจ้งให้แอปพลิเคชันไคลเอ็นต์ทราบโดยใช้การเรียกกลับของ onStrokesFinished() ของ InProgressStrokesFinishedListener
Callback จะช่วยให้แอปพลิเคชันเรียก
ข้อมูลเส้นโครงร่างที่เสร็จแล้วสำหรับการแสดงภาพหรือการจัดเก็บ
การแสดงภาพ
โมดูลการแสดงภาพช่วยให้ขั้นตอนการวาดเส้นหมึกลงบน
Android Canvas โมดูล
ระบุ CanvasStrokeRenderer
สำหรับ Compose และ
ViewStrokeRenderer
สำหรับเค้าโครงที่อิงตามการดู ซึ่งทั้ง 2 วิธีนี้ช่วยเพิ่มประสิทธิภาพการแสดงผลและทำให้
ภาพคุณภาพสูง ซึ่งรวมถึงการลบรอยหยัก
หากต้องการแสดงผลเส้นบนผืนผ้าใบ ให้รับอินสแตนซ์ CanvasStrokeRenderer โดยใช้เมธอด create() จากนั้นใช้
draw()
ในการแสดงผลเส้นโครงร่างที่เสร็จแล้วหรืออยู่ในระหว่างดำเนินการ
เส้นลงบนผืนผ้าใบ
คุณสามารถเปลี่ยนรูปแบบ (เลื่อน ซูม หรือหมุน) ของผืนผ้าใบได้ขณะวาดเส้น แต่ต้องส่งการเปลี่ยนรูปแบบที่ใช้กับผืนผ้าใบไปยังCanvasStrokeRenderer#draw()ด้วยเพื่อให้เส้นวาดออกมาดูดีที่สุดบนหน้าจอ
หากไม่ต้องการเก็บข้อมูลนี้แยกกัน ให้ใช้ ViewStrokeRenderer แทน