กราฟิก
ตารางนี้แสดงอาร์ติแฟกต์ทั้งหมดในกลุ่ม androidx.graphics
อาร์ติแฟกต์ | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
กราฟิกหลัก | 1.0.3 | - | - | - |
เส้นทางกราฟิก | 1.0.1 | - | - | - |
กราฟิก - รูปร่าง | 1.0.1 | - | 1.1.0-beta01 | - |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน Graphics คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูลของคุณ
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.3" implementation "androidx.graphics:graphics-path:1.0.1" implementation "androidx.graphics:graphics-shapes:1.1.0-beta01" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.3") implementation("androidx.graphics:graphics-path:1.0.1") implementation("androidx.graphics:graphics-shapes:1.1.0-beta01") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา
ไม่มีบันทึกประจำรุ่นสำหรับอาร์ติแฟกต์นี้
กราฟิกเวอร์ชัน 1.1
เวอร์ชัน 1.1.0-beta01
30 กรกฎาคม 2025
androidx.graphics:graphics-*:1.1.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไปจึงจะใช้งานได้ (Idb6b5)
- เพิ่มเป้าหมายการคอมไพล์
mingwX64
, js และ wasm (I2c46a)
เวอร์ชัน 1.1.0-alpha01
11 ธันวาคม 2024
androidx.graphics:graphics-*:1.1.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.1.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- ปรับปรุงการสาธิตหลักให้เป็นเครื่องมือแก้ไขรูปร่างทั่วไป ซึ่งจะช่วยให้คุณนำเข้ารูปร่างจากเส้นทาง SVG แก้ไขฟีเจอร์ที่ตรวจพบด้วยตนเองในกรณีที่กระบวนการอัตโนมัติพลาด และส่งออกผลลัพธ์เป็นโค้ดที่ใช้ในโค้ดเวอร์ชันที่ใช้งานจริงได้ (I1ac13)
- แทนที่การวัดมุมสำหรับความคืบหน้าของเส้นขอบรูปร่างด้วยการวัดความยาวเส้นโค้ง ซึ่งจะช่วยให้ใช้รูปร่างที่ซับซ้อนมากขึ้นสำหรับการมอร์ฟได้ (I75478) , I390dd
- ปรับปรุงอัลกอริทึมการแมปฟีเจอร์เพื่อให้การมอร์ฟดูเป็นธรรมชาติมากขึ้น (I83287)
การเปลี่ยนแปลง API
- เพิ่มการนำเข้าเส้นทาง SVG และฟีเจอร์ Serializer โดยปกติแล้วขั้นตอนจะเป็นดังนี้
- ใช้
SvgPathParser.parseFeatures()
ใหม่เพื่อแปลงเส้นทาง SVG (ค่าของแอตทริบิวต์d
ในองค์ประกอบpath
ของ SVG) เป็นList<Feature>
- ซึ่งสามารถแก้ไขได้ จากนั้นจะแปลงเป็นสตริงด้วย
FeatureSerializer.serialize()
- สตริงที่ได้สามารถใช้ในโค้ดเวอร์ชันที่ใช้งานจริงได้โดยการนำเข้าด้วย
FeatureSerializer.parse()
- โปรดทราบว่าขั้นตอนที่ 1 และ 2 จะทำเพียงครั้งเดียว และสามารถทำได้ด้วยแอปใหม่ ส่วนโค้ดเวอร์ชันที่ใช้งานจริงควรทำเพียงขั้นตอนที่ 3 (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
- ใช้
- แสดงฟีเจอร์รูปหลายเหลี่ยมและประเภทฟีเจอร์ ตอนนี้คุณสามารถสร้าง
RoundedPolygons
ทั่วไปเพิ่มเติมได้ด้วยตัวสร้างพื้นฐานที่ใช้List<Features>
ฟีเจอร์ส่วนใหญ่คือรายการเส้นโค้ง Cubic Bezier แต่มีการติดแท็กเพื่อช่วยให้อัลกอริทึม Morph จับคู่ระหว่างรูปร่างเริ่มต้นและรูปร่างสิ้นสุด (มุมนูนจะจับคู่กับมุมนูน และมุมเว้าจะจับคู่กับมุมเว้า) (I61e76), (I1fc5c) - เพิ่มการรองรับเป้าหมาย
watchosDeviceArm64
KMP และเป้าหมาย kotlin 1.9 (Icf15d, b/364652024)
แก้ไขข้อบกพร่อง
- แก้ไขกรณีขอบเมื่อฟีเจอร์สุดท้ายว่างเปล่า (I390dd)
- ทำให้
RoundedPolygon
มีความแข็งแกร่งมากขึ้น (Ib862c, b/360888486) - แก้ไขข้อบกพร่องในการเริ่มต้น
RoundedPolygon
(I83ddb) - แก้ไขข้อผิดพลาดในอัลกอริทึมเพื่อประมาณจุดศูนย์กลางของรูปหลายเหลี่ยม (Ida147)
รูปร่างกราฟิกเวอร์ชัน 1.0
เวอร์ชัน 1.0.1
4 กันยายน 2024
androidx.graphics:graphics-shapes:1.0.1
androidx.graphics:graphics-shapes-android:1.0.1
และ androidx.graphics:graphics-shapes-desktop:1.0.1
ออกอากาศแล้ว เวอร์ชัน 1.0.1 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.0.0
21 สิงหาคม 2024
androidx.graphics:graphics-shapes:1.0.0
androidx.graphics:graphics-shapes-android:1.0.0
และ androidx.graphics:graphics-shapes-desktop:1.0.0
ออกอากาศแล้ว เวอร์ชัน 1.0.0 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.0.0-rc01
24 กรกฎาคม 2024
androidx.graphics:graphics-shapes:1.0.0-rc01
androidx.graphics:graphics-shapes-android:1.0.0-rc01
และ androidx.graphics:graphics-shapes-desktop:1.0.0-rc01
ออกอากาศแล้ว เวอร์ชัน 1.0.0-rc01 มีการเปลี่ยนแปลงเหล่านี้
เวอร์ชัน 1.0.0-beta01
1 พฤษภาคม 2024
androidx.graphics:graphics-shapes:1.0.0-beta01
androidx.graphics:graphics-shapes-android:1.0.0-beta01
และ androidx.graphics:graphics-shapes-desktop:1.0.0-beta01
ออกอากาศแล้ว เวอร์ชัน 1.0.0-beta01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- อนุญาตให้หมุนรูปร่างล่วงหน้าเพื่อเริ่มที่จุดอื่น การเปลี่ยนแปลงนี้ช่วยให้
pillStar
เริ่มเส้นโค้งจากจุดที่ไม่ใช่ค่าเริ่มต้นบนขอบได้ ซึ่งจะมีประโยชน์เมื่อสร้างภาพเคลื่อนไหวการลากเส้นของเส้นทางรูปร่าง เพื่อเริ่มวาดจากตำแหน่งที่เฉพาะเจาะจงบนโครงร่างของรูปร่าง (Ifbb4d, b/324303807) - เพิ่มฟังก์ชัน
calculateBounds()
ลงในมอร์ฟ ซึ่งเทียบเท่ากับฟังก์ชันเดียวกันในRoundedPolygon
(I8a3b6, b/325463575)
เวอร์ชัน 1.0.0-alpha05
7 กุมภาพันธ์ 2024
androidx.graphics:graphics-shapes:1.0.0-alpha05
androidx.graphics:graphics-shapes-android:1.0.0-alpha05
และ androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05
ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha05 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- ตอนนี้ไลบรารีมีฟังก์ชัน
pill()
และpillStar()
ใหม่เพื่อให้สร้างรูปร่างกลม/ดาวเหล่านี้ได้ง่ายๆ นอกจากนี้ ยังมี API ใหม่สำหรับการคำนวณขอบเขตที่แน่นอนที่จำเป็นสำหรับรูปร่าง (ขอบเขตก่อนหน้านี้เป็นเพียงค่าประมาณที่อิงตามจุดยึดและจุดควบคุมของเส้นโค้งเบซิเยร์พื้นฐาน) รวมถึงขอบเขตสูงสุดที่เป็นไปได้ ซึ่งอาจเป็นประโยชน์ในการกำหนดขนาดของคอนเทนเนอร์ที่เก็บรูปร่างนั้นไว้หากจะหมุนรูปร่างภายในคอนเทนเนอร์ (I71827)
การเปลี่ยนแปลง API
- ตอนนี้มีตัวเลือกเพิ่มเติมสำหรับการดึงขอบเขตที่แน่นอนและสูงสุด (I6d49f, b/317286450)
แก้ไขข้อบกพร่อง
- บางครั้งอาจเกิดอาร์ติแฟกต์การแสดงผลเมื่อวาดรูปร่างเหล่านี้เป็นเส้นทางที่มีการลากเส้น เนื่องจากปัญหาการแสดงผลระดับต่ำที่เกี่ยวข้องกับเส้นโค้งที่มีความยาวเป็น 0 เราแก้ไขข้อบกพร่องนี้ด้วยการกำจัดเส้นโค้งที่มีความยาวเป็น 0 ทั้งหมด (ซึ่งรูปร่างไม่จำเป็นต้องใช้ จึงช่วยลดค่าใช้จ่ายของเส้นทางที่สร้างขึ้นจากรูปร่างด้วย)
เวอร์ชัน 1.0.0-alpha04
13 ธันวาคม 2023
androidx.graphics:graphics-shapes:1.0.0-alpha04
androidx.graphics:graphics-shapes-android:1.0.0-alpha04
และ androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04
ออกอากาศแล้ว เวอร์ชัน 1.0.0-alpha04 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รุ่นนี้มีการเปลี่ยนแปลง API หลายอย่าง รวมถึงการแก้ไขข้อบกพร่อง
- การเปลี่ยนแปลง API หลายอย่างทำให้ไลบรารีรูปร่างเป็นมิตรกับ KMP ซึ่งจะช่วยให้เรียกใช้จากโค้ดที่ไม่ใช่ Android ได้ง่ายขึ้น (เช่น โค้ด Compose ที่ไม่ขึ้นอยู่กับ Android) ตัวอย่างเช่น ไม่มีประเภท Android ใน API เช่น ประเภท PointF, Matrix และ Path ก่อนหน้า
- นอกจากนี้ เรายังได้ทำการเปลี่ยนแปลง API และการติดตั้งใช้งานหลายอย่างเพื่อเหตุผลด้านประสิทธิภาพ โดยเฉพาะอย่างยิ่งเพื่อลดการจัดสรร (และการรวบรวม) ออบเจ็กต์ ตัวอย่างเช่น การย้ายจาก PointF ไปยังพารามิเตอร์ Float แยกกันจะช่วยหลีกเลี่ยงการจัดสรรโครงสร้าง PointF ชั่วคราวจำนวนมากเพื่อเก็บจุดยอดเหล่านั้น
การเปลี่ยนแปลง API
- แทนที่
Morph.asMutableCubics
ด้วยฟังก์ชันเพื่อวนซ้ำในMutableCubics
เปลี่ยนอินเทอร์เฟซฟังก์ชันPointTransformer
ตอนนี้จะใช้พิกัด x และ y ของPoint
และแสดงผลTransformedResult
(ซึ่งสร้างขึ้นด้วยพิกัด x และ y ที่แปลงแล้ว) (I6719e) - นำตัวสร้าง
Cubic
สาธารณะออกและทำให้เป็นฟังก์ชันของ Factory (I409ce) - เพิ่ม API การเปลี่ยนรูปแบบและการวาดภาพเฉพาะ Android (I079f6, b/292289543)
- นำทรัพยากร Dependency ของ Android ออก (Iadc1c, b/292289543)
- ตอนนี้ชื่อพร็อพเพอร์ตี้ของ Anchor และ Control มีความสมเหตุสมผลมากขึ้น (If13bd, b/294562941)
PointF
พารามิเตอร์เปลี่ยนเป็นFloat
คู่ (Id4705, b/276466399, b/290254314)- ตอนนี้ระบบจะส่ง
progress
ไปยังคำสั่งวาดMorph
โดยตรง (Icdca2)
แก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องเมื่อสร้างรูปร่างขนาดใหญ่ (I4fd66, b/313497325)
เวอร์ชัน 1.0.0-alpha03
7 มิถุนายน 2023
androidx.graphics:graphics-shapes:1.0.0-alpha03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่มฟังก์ชัน
RoundedPolygon.rectangle()
ใหม่ (I78e7e, b/280322189) - ตอนนี้ฟังก์ชัน Star และ Circle จะไม่มีตัวพิมพ์ใหญ่และเรียกใช้ผ่านออบเจ็กต์คู่ของ
RoundedPolygon
เช่นRoundedPolygon.star(...)
(I14735)
แก้ไขข้อบกพร่อง
- แก้ไขข้อบกพร่องในการปรับให้เรียบ (Ibf894)
- แก้ไขข้อบกพร่องที่เกิดขึ้นเมื่อรูปร่างเริ่มต้นและรูปร่างสิ้นสุดเหมือนกัน จัดสรรพื้นที่ว่างด้านข้างให้ดีขึ้นสำหรับการตัด โดยใช้พื้นที่ว่างสำหรับการปัดเศษก่อน แล้วจึงใช้สำหรับการปรับให้เรียบหากมีพื้นที่เหลือ (Ibd320, b/277936300)
เวอร์ชัน 1.0.0-alpha02
19 เมษายน 2023
androidx.graphics:graphics-shapes:1.0.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ระบบได้ผสานรวมคลาสระดับบนสุดของรูปหลายเหลี่ยมเข้ากับคลาสย่อย
RoundedPolygon
แล้ว ตอนนี้รูปหลายเหลี่ยมทั้งหมดจึงเป็นรูปหลายเหลี่ยมโค้ง [ไม่บังคับ] - ตอนนี้ฟังก์ชัน Star (ซึ่งยังคงแสดงผล
RoundedPolygon
เช่นเดิม) จะใช้ค่าinnerRadius
แทนพารามิเตอร์innerRadiusRatio
ก่อนหน้า โดยใช้หน่วยเดียวกันกับพารามิเตอร์รัศมีที่มีอยู่ ซึ่งจะช่วยให้การทำงานง่ายขึ้นและมีความสอดคล้องกันมากขึ้น นอกจากนี้ เรายังเปลี่ยนชื่อพารามิเตอร์numOuterVertices
เป็นnumVerticesPerRadius
เพื่อให้ชัดเจนว่าใช้หมายเลขเดียวกันกับทั้งรัศมีด้านในและด้านนอก - ก่อนหน้านี้มีการระบุว่า
CornerRounding.radius
สัมพันธ์กับขนาดของรูปหลายเหลี่ยม แต่ค่าดังกล่าวเป็น (และควรเป็น) ค่าสัมบูรณ์ ไม่ใช่ค่าสัมพัทธ์ เราได้อัปเดตเอกสารและแก้ไขคำอธิบายประกอบที่จำกัดค่าสูงสุดไว้ที่ 1.0 แล้ว
เวอร์ชัน 1.0.0-alpha01
5 เมษายน 2023
Graphics-Shapes เป็นไลบรารีใหม่ที่ช่วยให้สร้างและแสดงผลรูปร่างหลายเหลี่ยมแบบกลม รวมถึงการมอร์ฟ (ภาพเคลื่อนไหว) อย่างง่ายและอัตโนมัติระหว่างรูปร่างต่างๆ ได้อย่างง่ายดาย
androidx.graphics:graphics-shapes:1.0.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชันนี้เผยแพร่จากสาขาภายใน
ฟีเจอร์ใหม่
- ใช้ Polygon API เพื่อสร้างรูปหลายเหลี่ยมปกติและรูปดาวที่มีจำนวนจุดยอดที่ต้องการ
- ใช้พารามิเตอร์
CornerRounding
ที่ไม่บังคับเพื่อระบุรัศมีการปัดเศษและพารามิเตอร์การปรับมุมให้เรียบ ซึ่งจะทำให้ได้รูปหลายเหลี่ยมที่มีมุมโค้งมน - ใช้
Morph(Polygon, Polygon)
API ใหม่เพื่อคำนวณรูปร่าง "มอร์ฟ" โดยอัตโนมัติ ซึ่งสามารถตั้งค่าความคืบหน้าจาก 0 ถึง 1 เพื่อเคลื่อนไหวระหว่างรูปร่างเริ่มต้นและรูปร่างสิ้นสุด ทำให้ความคืบหน้าเคลื่อนไหวไปเรื่อยๆ โดยวาดผลลัพธ์ในทุกเฟรมเพื่อสร้างภาพเคลื่อนไหวที่ราบรื่นระหว่างรูปร่างกลมใหม่เหล่านี้
เส้นทางกราฟิกเวอร์ชัน 1.0
เวอร์ชัน 1.0.1
1 พฤษภาคม 2024
androidx.graphics:graphics-path:1.0.1
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.1 มีการคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- การปรับปรุงแฟล็กคอมไพเลอร์
เวอร์ชัน 1.0.0
6 มีนาคม 2024
androidx.graphics:graphics-path:1.0.0
ได้รับการเผยแพร่แล้ว
เวอร์ชัน 1.0.0-rc01
21 กุมภาพันธ์ 2024
androidx.graphics:graphics-path:1.0.0-rc01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-rc01 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- ปรับปรุงประสิทธิภาพของ PathIterator ใน API < 34 (Id4629)
เวอร์ชัน 1.0.0-beta02
10 มกราคม 2024
การเปลี่ยนแปลงในรุ่นนี้มุ่งเน้นไปที่การลดขนาดของไลบรารี ซึ่งมีขนาดใหญ่กว่าที่จำเป็นเนื่องจากข้อสันนิษฐานที่โค้ดเนทีฟสร้างขึ้น
androidx.graphics:graphics-path:1.0.0-beta02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta02 มีคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- ลดขนาดของ
libandroidx.graphics.path.so
ลง 96% (I71397) - ลดขนาดของ
libandroidx.graphics.path.so
ลง 5% (I2da7c) - ลดขนาดคอมโพเนนต์ดั้งเดิมของ
androidx.graphics:graphics-path
ลง 43% (I8e40d)
เวอร์ชัน 1.0.0-beta01
29 พฤศจิกายน 2023
androidx.graphics:graphics-path:1.0.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- นำการใช้งาน
isAtLeastU()
API เวอร์ชันทดลองออก (Ie9117, b/289269026)
แก้ไขข้อบกพร่อง
- การแก้ไขและการปรับปรุงประสิทธิภาพต่างๆ รวมถึงวิธีที่ไลบรารีจัดการกับรูปกรวย
เวอร์ชัน 1.0.0-alpha02
7 มิถุนายน 2023
androidx.graphics:graphics-path:1.0.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชันนี้ได้รับการพัฒนาในสาขาภายใน
ฟีเจอร์ใหม่
- แก้ไขปัญหาเกี่ยวกับการตรวจสอบเวอร์ชันแพลตฟอร์มภายในซึ่งทำให้เกิดปัญหาเมื่อเรียกใช้ใน Android 14 เวอร์ชันตัวอย่าง (การตรวจสอบเวอร์ชันจะล้มเหลว แต่กลไกในการดำเนินการต่างๆ ในรุ่นก่อนหน้าจะทำงานไม่ถูกต้องใน Android 14 โดยเฉพาะ)
เวอร์ชัน 1.0.0-alpha01
22 มีนาคม 2023
androidx.graphics:graphics-path:1.0.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha01 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- ไลบรารีใหม่นี้ช่วยให้คุณค้นหาข้อมูลเส้นทางผ่าน
PathIterator
API ใหม่ได้ เมื่อใช้ API นี้ ผู้เรียกจะวนซ้ำผ่านทุกกลุ่มของออบเจ็กต์เส้นทางเพื่อพิจารณาการดำเนินการและข้อมูลสำหรับกลุ่มเหล่านั้นได้ - ไลบรารีใช้ API ที่คล้ายกันซึ่งเปิดตัวใน Android 14 Preview แต่ API เวอร์ชัน AndroidX นี้ยังใช้ได้กับเวอร์ชันย้อนกลับไปจนถึง API 21 ด้วย
Graphics Core เวอร์ชัน 1.0
เวอร์ชัน 1.0.3
26 มีนาคม 2025
androidx.graphics:graphics-core:1.0.3
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.3 มีการเปลี่ยนแปลงเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขการกะพริบแบบเต็มหน้าจอขณะวาดบนอุปกรณ์บางรุ่นที่มี API<33
เวอร์ชัน 1.0.2
16 ตุลาคม 2024
androidx.graphics:graphics-core:1.0.2
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.2 มีการเปลี่ยนแปลงเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ระบบยังคงจัดการอินสแตนซ์
SurfaceControl
แม้ว่าจะมีการเผยแพร่แล้วก็ตาม - แก้ไขปัญหาที่ระบบจะไม่ปล่อยอินสแตนซ์
HardwareBuffer
ที่กำลังนำเสนอหลังจากทิ้งการอ้างอิงที่มีเวลาในการตอบสนองต่ำ - แก้ไขปัญหาการกะพริบบนอุปกรณ์ Android 14 ขึ้นไปบางรุ่นที่ไม่รองรับแฟล็กการใช้งานบัฟเฟอร์ด้านหน้า
เวอร์ชัน 1.0.1
4 กันยายน 2024
androidx.graphics:graphics-core:1.0.1
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.1 มีการคอมมิตเหล่านี้
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่ระบบไม่ปล่อยทรัพยากรหน่วยความจำในบางครั้ง
เวอร์ชัน 1.0.0
29 พฤษภาคม 2024
androidx.graphics:graphics-core:1.0.0
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0 มีการคอมมิตเหล่านี้
ฟีเจอร์หลักของเวอร์ชัน 1.0.0
- การเปิดตัวไลบรารีกราฟิกหลักอย่างเป็นทางการ รวมการแก้ไขข้อบกพร่องเล็กน้อยและการปรับปรุงประสิทธิภาพจาก 1.0.0-rc01
เวอร์ชัน 1.0.0-rc01
17 เมษายน 2024
androidx.graphics:graphics-core:1.0.0-rc01
ได้รับการเผยแพร่แล้ว เวอร์ชันนี้ได้รับการพัฒนาในสาขาภายใน
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่อาจทำให้มีการปิดตัวอธิบายไฟล์ซ้ำกับ
CanvasBufferedRendererAPI
ในอุปกรณ์ Android บางรุ่นที่ใช้ Android 14 - แก้ไขปัญหาที่
FrameBuffer
ลบอินสแตนซ์ของ Framebuffer ไม่ถูกต้อง
เวอร์ชัน 1.0.0-beta01
13 ธันวาคม 2023
androidx.graphics:graphics-core:1.0.0-beta01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-beta01 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัว
LowLatencyCanvasView
API ใหม่เพื่อรองรับการแสดงผลที่มีเวลาในการตอบสนองต่ำด้วย API กราฟิก 2 มิติ (Canvas + Paint) ของ Android ภายในลำดับชั้นของ View - เปิดตัว
CanvasBufferedRenderer
API เพื่อรองรับการแสดงผล Canvas ที่เร่งด้วยฮาร์ดแวร์ไปยังHardwareBuffer
ซึ่งใช้ในการวาดส่วนหนึ่งของอินเทอร์เฟซผู้ใช้ลงในบัฟเฟอร์ที่แปลงเป็นบิตแมปได้โดยใช้Bitmap.wrapHardwareBuffer
API
การเปลี่ยนแปลง API
- อัปเดต
CanvasBufferRenderer#releaseBuffer
API ให้มีพารามิเตอร์รั้วซึ่งไม่บังคับ อัปเดตเอกสารประกอบเพื่ออธิบายเมื่อมีการส่งคืนRenderResult#fence
(If1ea7) - เพิ่ม
draw
method ไปยังRenderRequest
เพื่อรองรับการใช้ประโยชน์จากโครูทีนในการกำหนดเวลาคำขอการวาด เปลี่ยนชื่อวิธีการวาดก่อนหน้าซึ่งใช้ตัวดำเนินการเป็นdrawAsync
ปรับโครงสร้างเมธอดisClosed()
เป็นพร็อพเพอร์ตี้ (I5bff6) - เปิดเผยพารามิเตอร์รูปแบบบัฟเฟอร์ต่อ
CanvasFrontBufferRenderer
เพื่อแมปกับCanvasBufferedRenderer.Builder#setBufferFormat
โดยตรง (I0f272) - สร้าง
CanvasBufferedRenderer
API เพื่อจัดการการแสดงผล Canvas ที่เร่งด้วยฮาร์ดแวร์เป็นHardwareBuffer
ซึ่งจะช่วยให้มีการใช้งานที่พอร์ตย้อนกลับไปยัง Android Q พร้อมกับการกำหนดค่าความลึกของ Swapchain เป็นHardwareBuffers
ColorSpace
ยังคงจำกัดไว้ที่ Android U+ แต่การติดตั้งใช้งานความเข้ากันได้จะไม่มีการดำเนินการในนามของนักพัฒนาแอป (I9b1d8) - เพิ่ม API
setFrameRate
/clearFrameRate
ลงในSurfaceControlCompat.Transaction
เพื่อควบคุมอัตราเฟรมควบคู่ไปกับกลยุทธ์การเปลี่ยนแปลงสำหรับการเปลี่ยนฉากแบบราบรื่นหรือค่าเริ่มต้น (I6045c) - ลดระดับ API ที่จำเป็นสำหรับ
setDataSpace
เป็น Android Q จาก Android T (I59c34) - เพิ่ม
onBufferReleased
การเรียกกลับไปยังGLFrameBufferRenderer
API เพื่อให้ผู้ใช้มีโอกาสล้างสถานะเมื่อไม่มีการแสดงบัฟเฟอร์อีกต่อไป (I8a4e2) - สร้าง
LowLatencyCanvasView
เพื่อรองรับ Use Case ง่ายๆ ในการแสดงผลเนื้อหาที่มีเวลาในการตอบสนองต่ำซึ่งจะซิงค์กับการแสดงผลลำดับชั้นของ View ซึ่งจะช่วยลดความซับซ้อนที่เกี่ยวข้องกับการจัดการSurfaceView
โดยการจัดการอินสแตนซ์SurfaceView
ภายในที่ได้รับการแปลนอก/ในหน้าจอเพื่อการแสดงผลที่ซิงค์และมีความหน่วงต่ำตามลำดับ (I9253b) - เพิ่มการรองรับการกำหนดค่าพื้นที่สีลงใน
CanvasFrontBufferedRenderer
API อัปเดตการเรียกกลับแบบหลายบัฟเฟอร์ให้รวมSurfaceControl
ที่บัฟเฟอร์ไว้ด้านหลังด้วย (I24bd9)
เวอร์ชัน 1.0.0-alpha05
6 กันยายน 2023
androidx.graphics:graphics-core:1.0.0-alpha05
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha05 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- เปิดตัว
GLFrameBufferRenderer
API ซึ่งจะให้การผสมผสานระหว่างการกำหนดค่าการพึ่งพา OpenGL, การกำหนดค่า Swap Chain, รูปแบบพิกเซล และการกำหนดค่าSurfaceControl
(Ic775b)
การเปลี่ยนแปลง API
- เพิ่มพารามิเตอร์ความกว้าง + ความสูงลงใน API การเรียกกลับต่างๆ เพื่อส่งต่อขนาดจาก
SurfaceHolder#Callbacks
(I7f9fc) - เพิ่ม API ที่ชัดเจนเพื่อล้างทั้งเลเยอร์บัฟเฟอร์ด้านหน้าและเลเยอร์บัฟเฟอร์หลายรายการ (Ic1f95)
- เพิ่มการรองรับการกำหนดค่าประเภทบัฟเฟอร์พื้นฐานของ Swapchain ที่ใช้ภายใน
GLFrontBufferedRenderer
(I07a13) - เพิ่มพร็อพเพอร์ตี้ Kotlin สำหรับตัวรับในคำอธิบายประกอบ
GLFrameBufferRenderer
,IntRange
สำหรับรายการบัฟเฟอร์สูงสุด และคำอธิบายประกอบHardwareBufferFormart
และHardwareBufferUsage
สำหรับsetFormat
/setUsage
ตามลำดับ (Ief89e) - อัปเดต
setBuffer
API ในธุรกรรมSurfaceControl
เพื่อให้มีรั้วกั้นการเผยแพร่ (Ice1bb) - เพิ่ม
SurfaceControlCompat.Transaction
API เพื่อกำหนดค่าพื้นที่ข้อมูลและตั้งค่าช่วงความสว่างแบบขยาย (Ic378d)
เวอร์ชัน 1.0.0-alpha04
7 มิถุนายน 2023
androidx.graphics:graphics-core:1.0.0-alpha04
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha04 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เปิดตัว
CanvasFrontBufferedRenderer
เพื่อรองรับกราฟิกที่มีเวลาในการตอบสนองต่ำโดยใช้ประโยชน์จากandroid.graphics.Canvas
API ควบคู่ไปกับการใช้งาน OpenGL ที่มีอยู่
การเปลี่ยนแปลง API
- อัปเดต
SurfaceControlCompat.Transaction#setBuffer
API เพื่ออนุญาตให้อินสแตนซ์HardwareBuffer
ที่เป็น Null ได้เพื่อจำลอง API ของแพลตฟอร์มที่เกี่ยวข้อง (I173d7) - เปลี่ยนชื่อเมธอดที่อ้างอิงการแสดงผลแบบ Double Buffered เป็น Multi Buffered แทน เนื่องจาก Swapchain ที่สำรองอาจมีบัฟเฟอร์มากกว่า 2 รายการ (I830d7)
- สร้าง
CanvasFrontBufferedRenderer
API เพื่อให้บุคคลที่สามใช้ประโยชน์จากระบบการแสดงผลที่บัฟเฟอร์ด้านหน้าโดยใช้ Canvas API (Ibfc29)
แก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
GLFrontBufferedRenderer
ไม่แสดงเนื้อหาหลังจากกลับมาทำกิจกรรมที่เกี่ยวข้องต่อ - แก้ไขปัญหาที่เนื้อหาที่บัฟเฟอร์ด้านหน้าจะถูกล้างก่อนเวลาอันควร
- แก้ไขปัญหาที่ระบบจะไม่นำ
SurfaceHolder.Callbacks
ออกหลังจากเปิดตัวกราฟิก API ที่มีความหน่วงต่ำ
เวอร์ชัน 1.0.0-alpha03
22 มีนาคม 2023
androidx.graphics:graphics-core:1.0.0-alpha03
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha03 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- อัปเดตการติดตั้งใช้งาน
GLFrontBufferedRenderer
การเรียกกลับเพื่อให้ออบเจ็กต์BufferInfo
ที่มีบัฟเฟอร์ความกว้าง/ความสูงพร้อมกับตัวระบุบัฟเฟอร์เฟรมที่ใช้กำหนดเป้าหมายใหม่ไปยังปลายทางเดิมได้หลังจากแสดงผลไปยังบัฟเฟอร์ชั่วคราวระดับกลาง (I7fe20) - รวมการสร้าง
SyncFence
เป็นเมธอดแบบคงที่ในSyncFenceCompat
- นำวิธีการใช้งานร่วมกันแบบสาธารณะสำหรับ
eglDupNativeFenceFDANDROID
ออกเพื่อสนับสนุนวิธีการจากโรงงานของSyncFenceCompat
ในการสร้าง SyncFence เพื่อให้มั่นใจว่าพื้นผิว API ทั้งหมดจะได้รับการติดตั้งใช้งานSyncFence
ที่ถูกต้องไม่ว่า API จะมีระดับใดก็ตาม (I849bb) - เพิ่มเอกสารประกอบสำหรับ
FrameBufferRenderer
และSyncStrategy
- ย้าย
FrameBufferRenderer
+FrameBuffer
+FrameBufferPool
ไปยังแพ็กเกจandroidx.graphics.opengl
- ย้าย
SyncStrategy
ไปยังแพ็กเกจandroidx.graphics.opengl
- เอกสาร
RenderCallback#onDraw
ที่อัปเดตแล้ว - เอกสารประกอบที่อัปเดตของ
RenderCallback#obtainFrameBuffer
ซึ่งผู้ใช้ API มีหน้าที่เรียกFrameBuffer.close
- อัปเดต
onDrawComplete
เพื่อระบุว่าผู้บริโภคมีหน้าที่รับผิดชอบในการส่งเนื้อหาเพื่อแสดง - ย้ายอินเทอร์เฟซ/คลาสความเข้ากันได้
SyncFence
ไปยังแพ็กเกจandroidx.hardware
เพื่อมิเรอร์เฟรมเวิร์ก - เปลี่ยนชื่อ
SyncFence
API เป็นSyncFenceV19
และตั้งค่าเป็นส่วนตัวเพื่อรวมการใช้งานไว้ในSyncFenceCompat
ซึ่งใช้ประโยชน์จากSyncFence
API ของเฟรมเวิร์กได้ทุกเมื่อที่เป็นไปได้ (I5149c)
- ย้าย
- เพิ่มเมธอด
GLFrontBufferedRenderer#cancel
และGLFrontBufferedRenderer#execute
แบบแรกมีประโยชน์ในสถานการณ์การปฏิเสธฝ่ามือ ซึ่งควรยกเลิกการแสดงผลไปยังบัฟเฟอร์ด้านหน้าและซ่อนบัฟเฟอร์ด้านหน้า ซึ่งมีประโยชน์ในสถานการณ์ที่ต้องจัดการออบเจ็กต์ในเธรด GL โดยไม่ต้องกำหนดเวลาการแสดงผล (If0b7f) - เพิ่ม API เพื่อแสดงผลโดยตรงไปยังเลเยอร์ที่มีการบัฟเฟอร์ 2 ครั้ง ซึ่งจะช่วยในการแสดงผลฉากอีกครั้งหลังจากกลับมาทำงานต่อ รวมถึงเปิดโอกาสให้ผู้บริโภคเลือกได้ว่าจะใช้การแสดงผลแบบบัฟเฟอร์ด้านหน้าแบบไดนามิกเมื่อใดตามฉากที่ต้องการแสดงผล (Ied56c)
- เพิ่ม API ใหม่ใน
SurfaceControlCompat.Builder
เพื่อรองรับการกำหนดค่าSurfaceControl
หลักจากอินสแตนซ์SurfaceControl
อื่นนอกเหนือจากกลไกที่มีอยู่จากSurfaceView
(I1d1b6) - ความสามารถในการเป็นค่าว่างของประเภทการคืนค่าเพิ่มเติมของฟังก์ชันที่เลิกใช้งานแล้วและซ่อนอยู่ (Ibf7b0)
- เพิ่มค่าคงที่ของส่วนขยาย
EGL_ANDROID_get_native_client_buffer
เพื่อสอบถามว่าอุปกรณ์ Android รองรับการนำเข้าอินสแตนซ์HardwareBuffer
ไปยังออบเจ็กต์EGLClientBuffer
ที่ใช้เป็นอินสแตนซ์EGLImage
ได้หรือไม่ (Iad767) - เพิ่มคำอธิบายประกอบ
@JvmDefaultWithCompatibility
(I8f206)
เวอร์ชัน 1.0.0-alpha02
9 พฤศจิกายน 2022
androidx.graphics:graphics-core:1.0.0-alpha02
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- แก้ไขปัญหาที่ไม่มีคำอธิบายประกอบ
RequiresApi
สำหรับaddTransactionCommitListener
ซึ่งเปิดตัวใน Android S (I0a035) - อัปเดต
onDraw<Front/Double>
การเรียกกลับของบัฟเฟอร์เพื่อให้เมทริกซ์การเปลี่ยนรูปที่ผู้ใช้ส่งไปยัง Vertex Shader ได้ นอกเหนือจากความกว้าง/ความสูงของบัฟเฟอร์ปัจจุบัน ผู้บริโภคมีหน้าที่รับผิดชอบในการใช้พารามิเตอร์เหล่านี้เพื่อหมุนรหัสการแสดงผล OpenGL อย่างถูกต้องล่วงหน้า (I82f9e)
แก้ไขข้อบกพร่อง
- ปรับปรุงเวลาในการตอบสนองของกราฟิกโดยการหมุนบัฟเฟอร์ล่วงหน้าก่อนที่จะออกธุรกรรม
SurfaceControl
- แก้ไขปัญหาที่บันทึกข้อผิดพลาดจะแสดงข้อผิดพลาด 300d (EGL_BAD_SURFACE)
- แก้ไขปัญหาที่
GLFrontBufferedRenderer
จะไม่ถูกต้องหลังจากที่กิจกรรมที่เกี่ยวข้องซึ่งใช้ภายในนั้นกลับมาทำงานต่อ - เพิ่มการรองรับโปรแกรมจำลองและอุปกรณ์ ChromeOS
- แก้ไขปัญหาที่เลเยอร์บัฟเฟอร์ด้านหน้าอาจถูกซ่อนก่อนเวลาอันควร
เวอร์ชัน 1.0.0-alpha01
24 ตุลาคม 2022
androidx.graphics:graphics-core:1.0.0-alpha01
ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha01 มีคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- การเปิดตัวไลบรารี AndroidX หลักของกราฟิกครั้งแรก ซึ่งรวมถึง API ที่รองรับกรณีการใช้งานที่มีเวลาในการตอบสนองต่ำ เช่น การป้อนข้อมูลด้วยสไตลัส นอกจากนี้ยังมีการเปิดตัว API ตัวช่วยบางอย่างสำหรับการใช้งาน OpenGL ด้วย
การเปลี่ยนแปลง API
- เปิดตัว
GLFrontBufferedRenderer
เพื่อช่วยในการแสดงผลแบบบัฟเฟอร์ด้านหน้าและแบบหลายบัฟเฟอร์เพื่อให้ได้ทั้งเวลาในการตอบสนองต่ำและเอาต์พุตการแสดงผลคุณภาพสูง - เปิดตัว
GLRenderer
API เพื่อช่วยในการแสดงผล OpenGL สำหรับผู้ให้บริการ Surface ต่างๆ เช่นSurfaceView
,TextureView
และอื่นๆ