หมึก

  
สร้างแรงบันดาลใจให้เกิดแอปปากกาที่ดีที่สุด ลดอุปสรรคในการเริ่มต้นใช้งานสำหรับนักพัฒนาแอปเพื่อสร้างประสบการณ์การใช้หมึกที่สวยงามและมีประสิทธิภาพสูง รองรับการใช้หมึกใน Android และ JVM ฝั่งเซิร์ฟเวอร์ (ปัจจุบันรองรับใน Linux สำหรับ x86_64)
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
17 มิถุนายน 2026 1.0.0 - - 1.1.0-alpha04

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มทรัพยากร Dependency ใน Ink คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google

เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle ของแอปหรือโมดูล

Groovy

dependencies {
  
    implementation "androidx.ink:ink-authoring:1.1.0-alpha04"
    implementation "androidx.ink:ink-authoring-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-brush:1.1.0-alpha04"
    implementation "androidx.ink:ink-brush-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-geometry:1.1.0-alpha04"
    implementation "androidx.ink:ink-geometry-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-nativeloader:1.1.0-alpha04"
    implementation "androidx.ink:ink-rendering:1.1.0-alpha04"
    implementation "androidx.ink:ink-storage:1.1.0-alpha04"
    implementation "androidx.ink:ink-strokes:1.1.0-alpha04"
    
}

Kotlin

dependencies {


    implementation("androidx.ink:ink-authoring:1.1.0-alpha04")
    implementation("androidx.ink:ink-authoring-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-brush:1.1.0-alpha04")
    implementation("androidx.ink:ink-brush-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-geometry:1.1.0-alpha04")
    implementation("androidx.ink:ink-geometry-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-nativeloader:1.1.0-alpha04")
    implementation("androidx.ink:ink-rendering:1.1.0-alpha04")
    implementation("androidx.ink:ink-storage:1.1.0-alpha04")
    implementation("androidx.ink:ink-strokes:1.1.0-alpha04")
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ได้ที่หัวข้อเพิ่มทรัพยากร Dependency ในการสร้าง

ความคิดเห็น

ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมีไอเดียในการปรับปรุงไลบรารีนี้ โปรดดู ปัญหาที่มีอยู่แล้ว ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่แล้วได้โดยคลิกปุ่มรูปดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของIssue Tracker

Ink เวอร์ชัน 1.1

เวอร์ชัน 1.1.0-alpha04

17 มิถุนายน 2026

เผยแพร่ androidx.ink:ink-*:1.1.0-alpha04 แล้ว เวอร์ชัน 1.1.0-alpha04 มีการคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • แก้ไขปัญหาความแม่นยำของจุดลอยตัวที่ทำให้เกิดอาร์ติแฟกต์ภาพในเส้นที่วาดเสร็จแล้ว ซึ่งส่งผลต่ออุปกรณ์บางรุ่นหลังจากการอัปเกรดระบบปฏิบัติการ

  • เพิ่ม API ทั่วไปของ KMP สำหรับโมดูลพื้นที่เก็บข้อมูล (เปลี่ยนจาก/เป็น ByteArray แทน InputStream/OutputStream ของ Java)

  • เพิ่มพร็อพเพอร์ตี้ BrushBehavior.developerComment เพื่อเก็บข้อมูลเมตาที่อธิบายการออกแบบตระกูลแปรงที่กำหนดเอง โดยมีวัตถุประสงค์เพื่อรองรับ UI ของเครื่องมือออกแบบแปรง

  • แก้ไขข้อบกพร่องในการตรวจสอบความสอดคล้องของเธรดใน CanvasInProgressStrokesRenderHelperV33

  • แก้ไขข้อบกพร่องบางอย่างในการจัดการช่องที่ไม่บังคับของ MotionEvent (เช่น การเอียง แรงกด)

  • ปรับปรุงเอกสารประกอบสำหรับ API แปรงที่กำหนดเอง

  • เพิ่มประเภท BrushPaint.ColorFunction ใหม่

เวอร์ชัน 1.1.0-alpha03

19 พฤษภาคม 2026

เผยแพร่ androidx.ink:ink-*:1.1.0-alpha03 แล้ว เวอร์ชัน 1.1.0-alpha03 มี การคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • ทำให้ API การปรับแต่งแปรงหมึกแบบเป็นโปรแกรมเป็นแบบสาธารณะ (I8e2e1)
  • แยก BrushPaint.TextureLayer ออกเป็นคลาสย่อยที่เฉพาะเจาะจงมากขึ้น (I8848a)

เวอร์ชัน 1.1.0-alpha02

22 เมษายน 2026

เผยแพร่ androidx.ink:ink-*:1.1.0-alpha02 แล้ว เวอร์ชัน 1.1.0-alpha02 มี การคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • เปิดเผยการโอเวอร์โหลดของ BrushFamily.decode ที่ระบุความเข้ากันได้ของเวอร์ชันสูงสุด (I1c7bc)
  • เลื่อนระดับ API การซีเรียลไลซ์ BrushFamily จากเวอร์ชันทดลอง (Idd16e)

การแก้ไขข้อบกพร่อง

  • แก้ไขการกะพริบเมื่อใช้ InProgressStrokesView.maskPath ในอุปกรณ์บางรุ่น (I1c7bc, b/496920044)

เวอร์ชัน 1.1.0-alpha01

11 มีนาคม 2026

เผยแพร่ androidx.ink:ink-*:1.1.0-alpha01 แล้ว เวอร์ชัน 1.1.0-alpha01 มีการคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • การแก้ไขข้อบกพร่องเล็กๆ น้อยๆ

การเปลี่ยนแปลง API

  • เพิ่ม InProgressShape.isCanceled แก้ไขปัญหาการทำงานพร้อมกันในโมดูลการเขียน (Ibfd32, b/474385518, b/470695777)
  • เปิดเผยเวอร์ชันที่มีอาร์กิวเมนต์เป็น 0 ของ CanvasStrokeRenderer.create และ InProgressStroke.updateShape ให้กับ Java (Id80a1, b/457715938)

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อบกพร่องที่ทำให้เกิดข้อขัดข้องใน InProgressStrokesView หลังจากปลดออก/แนบใหม่จากหน้าต่างสำหรับ API 29-32 อนุญาตให้การดำเนินการ Vec ใช้ MutableVec เดียวกันเป็นอินพุตและเอาต์พุต รวมการกำหนดค่า Proguard เป็นไฟล์เดียว (Ia4da0)
  • เพิ่มทรัพยากร Dependency ใน graphics-core เป็น 1.0.4 (Ibfa18)

เวอร์ชัน 1.0

เวอร์ชัน 1.0.0

17 ธันวาคม 2025

เผยแพร่ androidx.ink:ink-*:1.0.0 แล้ว เวอร์ชัน 1.0.0 มีการคอมมิตต่อไปนี้

การแก้ไขข้อบกพร่อง

  • เพิ่มทรัพยากร Dependency ใน graphics-core เป็น 1.0.4 (Ibfa18)

เวอร์ชัน 1.0.0-rc01

3 ธันวาคม 2025

เผยแพร่ androidx.ink:ink-*:1.0.0-rc01 แล้ว เวอร์ชัน 1.0.0-rc01 มีการคอมมิตต่อไปนี้

การแก้ไขข้อบกพร่อง

  • อัปเดตเวอร์ชันทรัพยากร Dependency (Iecd04)

เวอร์ชัน 1.0.0-beta02

19 พฤศจิกายน 2025

เผยแพร่ androidx.ink:ink-*:1.0.0-beta02 แล้ว เวอร์ชัน 1.0.0-beta02 มีการคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • API รูปร่างที่มีการตอบสนองต่ำที่กำหนดเองเวอร์ชันทดลอง การแก้ไขข้อบกพร่องต่างๆ (Ib8d2f)

การแก้ไขข้อบกพร่อง

  • ปรับปรุงความแม่นยำของจุดลอยตัวในการเรียงอันดับ StrokeInputBatch ซึ่งจะแก้ไขการเลื่อนค่าจากการเข้ารหัสและการถอดรหัสซ้ำๆ
  • การล้างข้อมูลอินพุตของระบบที่ดียิ่งขึ้น
  • แก้ไขการรองรับพื้นผิวของแปรงในคอมโพสได้ InProgressStrokes

เวอร์ชัน 1.0.0-beta01

22 ตุลาคม 2025

เผยแพร่ androidx.ink:ink-*:1.0.0-beta01 แล้ว เวอร์ชัน 1.0.0-beta01 มีการคอมมิตต่อไปนี้

การแก้ไขข้อบกพร่อง

  • การแก้ไขข้อบกพร่องเพื่อเตรียมพร้อมสำหรับการเผยแพร่ beta01 (I9900e)
  • ลดอาร์ติแฟกต์การแสดงผลในเส้นเนื่องจากอินพุตที่จำลองไว้จำนวนมากอยู่ใกล้กันมากเกินไป
  • แก้ไขข้อขัดข้องที่เกิดขึ้นไม่บ่อยนักในการจำลองอินพุต

เวอร์ชัน 1.0.0-alpha07

8 ตุลาคม 2025

เผยแพร่ androidx.ink:ink-*:1.0.0-alpha07 แล้ว เวอร์ชัน 1.0.0-alpha07 มีการคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • พารามิเตอร์ SelfOverlap สำหรับ StockBrushes highlighter และ emojiHighlighter ซึ่งแทนที่ rendererFactory ของ InProgressStrokesView
  • การใช้งานการปรับให้เรียบของอินพุตเส้นที่ปรับปรุงแล้ว ซึ่งจะช่วยขจัดสัญญาณรบกวนจากการวัดของอุปกรณ์ แต่จะแสดงข้อมูลจากผู้ใช้ได้อย่างแม่นยำกว่าการใช้งานการปรับให้เรียบของอินพุตเส้นก่อนหน้านี้
  • ปรับปรุงความสอดคล้องกับ API อื่นๆ ของ Android/Jetpack สำหรับหน่วยมุม (องศาเทียบกับเรเดียน) การแปลง (การเฉือนเทียบกับการเอียง) และอื่นๆ

การเปลี่ยนแปลง API

  • เปลี่ยน API ที่เกี่ยวข้องกับมุมให้ใช้องศาและรวมหน่วยไว้ในชื่อ ชี้แจงหน่วยในยูทิลิตีการแปลงมุมและรองรับทั้งองศาและเรเดียน เปลี่ยน API StockBrushes ให้ใช้เวอร์ชันแปรงมาตรฐานเป็นพารามิเตอร์ฟังก์ชัน Factory และเปิดเผยการควบคุมลักษณะการทำงานของการซ้อนทับกันเองสำหรับแปรงไฮไลต์ เปลี่ยนชื่อ MutableAffineTransform.populateFromTranslate เป็น populateFromTranslation นำ InProgressStrokesView.setRenderFactory/getRenderFactory ออก (Id9eab, b/436656418)
  • เปลี่ยนชื่อการเฉือนเป็นการเอียง ชี้แจงเอกสารประกอบบางส่วน นำ CanvasStrokeRenderer.strokeModifiedRegionOutsetPx ออก เพิ่ม InProgressStroke.changesWithTime (Ia5e70, b/436656418)

การแก้ไขข้อบกพร่อง

  • ปรับปรุงการจำลองอินพุตเพื่อให้เส้นแสดงอินพุตได้อย่างแม่นยำมากขึ้น (I93097)

เวอร์ชัน 1.0.0-alpha06

13 สิงหาคม 2025

เผยแพร่ androidx.ink:ink-*:1.0.0-alpha06 แล้ว เวอร์ชัน 1.0.0-alpha06 มีการคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • แปรงมาตรฐานไฮไลต์อีโมจิ: ไฮไลต์บางส่วนของเอกสารด้วยอีโมจิที่เลือกเพื่อเพิ่มความสนุกสนานและช่วยให้จัดระเบียบได้ง่าย
  • API ตัวช่วยเพิ่มเติมสำหรับรูปร่างดั้งเดิมของโมดูลเรขาคณิต
  • ปรับปรุงความเข้ากันได้และประสิทธิภาพของอุปกรณ์

การเปลี่ยนแปลง API

  • API ที่ง่ายขึ้นสำหรับ InProgressStrokesView ทำให้ API เรขาคณิตเสร็จสมบูรณ์ ไฮไลต์อีโมจิ นำฟังก์ชัน Factory ออกจาก MutableParallelogram เพื่อใช้เมธอด Populate รองรับ Seed สำหรับลักษณะการทำงานของแปรงแบบสุ่ม (I38280)

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาด้านประสิทธิภาพและปัญหาความสอดคล้องของสีเปียก/แห้ง (Ifcd1d)

เวอร์ชัน 1.0.0-alpha05

18 มิถุนายน 2025

เผยแพร่ androidx.ink:ink-*:1.0.0-alpha05 แล้ว เวอร์ชัน 1.0.0-alpha05 มี การคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • โมดูลการทำงานร่วมกันของ Compose สำหรับโมดูลการเขียน แปรง และเรขาคณิต

การเปลี่ยนแปลง API

  • โมดูลและการทำงานร่วมกันของ Compose ใหม่ API การล้างข้อมูล API (I0e464)
  • นำเมธอด InProgressStroke.enqueueInputs/updateShape ที่แสดงผล kotlin.Result ออกแล้ว ลูกค้าควรใช้ enqueueInputsOrThrow หรือ enqueueInputsOrIgnore แทน เปลี่ยนชื่อ InProgressStroke.getNeedsUpdate เป็น isUpdateNeeded InProgressStroke.populateOutlinePosition จะแสดงผลพารามิเตอร์เอาต์พุตเพื่อให้สามารถเรียกใช้เมธอดต่อเนื่องกันได้ ซึ่งสอดคล้องกับเมธอดอื่นๆ ใน Ink ย้ายอินเทอร์เฟซ TextureBitmapStore จากโมดูลการแสดงผลไปยังโมดูลแปรง BoxAccumulator.populateFrom เปลี่ยนไปใช้กล่องที่ไม่เปลี่ยนแปลงซึ่งยอมรับค่า Null ได้แทน BoxAccumulator ที่เปลี่ยนแปลงได้ เพื่อให้เห็นชัดเจนว่ามีการเปลี่ยนแปลงอะไรบ้าง ผู้เรียกควรเปลี่ยน boxAccumulator.add(other) เป็น boxAccumulator.add(other.box) นำ BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColor ออกแล้ว ให้ใช้ setAndroidColor ของ Brush.Builder หลังจากสร้างแทน (Ia7155)
  • พร็อพเพอร์ตี้ InProgressStrokesView.textureBitmapStore ซึ่งก่อนหน้านี้เป็นเวอร์ชันทดลอง ตอนนี้เป็นแบบส่วนตัวแล้ว แต่ยังคงมีตัวเข้าถึงแบบสาธารณะสำหรับพร็อพเพอร์ตี้นี้ (I1d706)

การแก้ไขข้อบกพร่อง

  • ปรับปรุงประสิทธิภาพสำหรับแปรงที่กำหนดเองซึ่งมีอนุภาคจำนวนมาก

เวอร์ชัน 1.0.0-alpha04

9 เมษายน 2025

เผยแพร่ androidx.ink:ink-*:1.0.0-alpha04 แล้ว เวอร์ชัน 1.0.0-alpha04 มีการคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • เปิดตัว API ใหม่เวอร์ชันทดลองสำหรับออบเจ็กต์ BrushFamily ที่กำหนดเอง ซึ่งช่วยให้ใช้แปรงใหม่ๆ ได้ เช่น ดินสอและเลเซอร์พอยเตอร์ API อนุญาตให้โหลดแปรงที่กำหนดโดยโปรโตคอลนี้ (I8809a)

เวอร์ชัน 1.0.0-alpha03

12 กุมภาพันธ์ 2025

เผยแพร่ androidx.ink:ink-*:1.0.0-alpha03 แล้ว เวอร์ชัน 1.0.0-alpha03 มีการคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • ประหยัดพื้นที่ดิสก์และเครือข่าย: การซีเรียลไลซ์ StrokeInputBatch ช่วยประหยัดโค้ดได้หลายบรรทัด โดยออบเจ็กต์ที่ได้จะมีขนาดเล็กมากเมื่อเทียบกับขนาดของเส้นที่จัดเก็บแบบเดิม (Ie898d)
  • การเลือกแบบ Lasso: แปรงเส้นประเพื่อวาดเส้นการเลือก และฟังก์ชันเพื่อเปลี่ยนเส้นการเลือกเป็น PartitionedMesh สำหรับการค้นหาเรขาคณิต (Ia38a0)

เวอร์ชัน 1.0.0-alpha02

11 ธันวาคม 2024

เผยแพร่ androidx.ink:ink-*:1.0.0-alpha02 แล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตต่อไปนี้

การเปลี่ยนแปลง API

  • การแก้ไขข้อบกพร่องต่างๆ (I05dd8)

การสนับสนุนจากภายนอก

  • เลิกใช้งาน BuildCompat.isAtLeastV ผู้เรียกควรตรวจสอบ SDK_INT กับ 35 โดยตรงแทน (I294d1)

เวอร์ชัน 1.0.0-alpha01

2 ตุลาคม 2024

เผยแพร่ androidx.ink:ink-*:1.0.0-alpha01 แล้ว เวอร์ชัน 1.0.0-alpha01 มีการคอมมิตต่อไปนี้

ฟีเจอร์ใหม่

  • ไลบรารีแบบโมดูลและกำหนดค่าได้เพื่อให้สร้าง แสดงผล และจัดการเส้นหมึกที่สวยงามซึ่งเขียนในแอปพลิเคชันของคุณได้ง่าย

การเปลี่ยนแปลง API

โมดูลใหม่ที่จะช่วยให้นักพัฒนาแอปสร้างประสบการณ์การใช้หมึกที่สมบูรณ์ได้

  • การเขียน: ใช้ InProgressStrokesView เพื่อแสดงผลเส้นแบบเรียลไทม์ที่มีประสิทธิภาพสูงและการตอบสนองต่ำเมื่อได้รับอินพุต
  • การแสดงผล: ใช้ CanvasStrokeRenderer และ ViewStrokeRenderer เพื่อวาดเส้นหมึกที่วาดเสร็จแล้วเป็นส่วนหนึ่งของอินเทอร์เฟซผู้ใช้ของแอป
  • เส้น: ประเภทข้อมูลหลักที่ใช้สำหรับฟีเจอร์การใช้หมึก
  • แปรง: ข้อกำหนดที่กำหนดค่าได้เกี่ยวกับลักษณะและการทำงานของเส้นเพื่อตอบสนองต่ออินพุตของผู้ใช้
  • เรขาคณิต: การดำเนินการทางเรขาคณิต เช่น การตัดกันและการครอบคลุม เพื่อขับเคลื่อนเครื่องมือต่างๆ เช่น การเลือกและการลบ