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
แทน