โมดูล

Ink API แบ่งออกเป็นโมดูลต่างๆ คุณจึงใช้งานได้เฉพาะที่ต้องการ

สโตรก

โมดูลเส้นเป็นรากฐานของไลบรารีหมึก โดยให้บริการอินเทอร์เฟซ API หลักและมีประเภทข้อมูลหลักสำหรับการโต้ตอบกับไลบรารี ประเภทข้อมูลสำคัญภายในโมดูลนี้ ได้แก่

  • StrokeInputBatch: หมายถึงชุดอินพุตของตัวชี้ ตำแหน่งที่ครอบคลุม การประทับเวลา และ แรงกด การเอียง และการวางแนวที่เลือกได้ ข้อมูลนี้สามารถใช้กับคลาส Stroke หรือ InProgressStroke และเป็นประเภทที่จะให้อินพุตสำหรับคลังการจดจำลายมือ
  • Stroke: การนําเสนอเส้นที่แก้ไขแล้วซึ่งไม่สามารถเปลี่ยนแปลงได้โดยมีเรขาคณิตแบบคงที่ เส้นประกอบ CANNOT TRANSLATE ImmutableStrokeInputBatch (จุดอินพุต) 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 แทน