ตัวอย่าง MotionLayout

ลองใช้วิธีแบบ Compose
Jetpack Compose เป็นชุดเครื่องมือ UI ที่แนะนำสำหรับ Android ดูวิธีใช้ภาพเคลื่อนไหวใน Compose

เอกสารนี้มีตัวอย่างวิธีใช้ MotionLayout แต่ละตัวอย่างจะมีวิดีโอที่แสดงภาพเคลื่อนไหว พร้อมด้วยโค้ดที่เกี่ยวข้องสำหรับฉากภาพเคลื่อนไหวและเลย์เอาต์

ภาพเคลื่อนไหวพื้นฐาน

ตัวอย่างนี้มีมุมมองเดียวที่คุณแตะและลากเพื่อเลื่อนในแนวนอนได้

รูปที่ 1 การลากมุมมอง

แอตทริบิวต์ที่กำหนดเอง - backgroundColor

ตัวอย่างนี้คล้ายกับตัวอย่างภาพเคลื่อนไหวพื้นฐาน นอกจากภาพเคลื่อนไหวพื้นฐานแล้ว สีพื้นหลังของมุมมองจะเปลี่ยนไปเมื่อมุมมองเคลื่อนที่

รูปที่ 2 การลากมุมมองขณะที่สีพื้นหลังเปลี่ยนไป

ImageFilterView - การเปลี่ยนรูปภาพ

ตัวอย่างนี้แสดงวิธีเปลี่ยนค่าความอิ่มตัวของ ImageFilterView

รูปที่ 3 การลากรูปภาพขณะที่ความอิ่มตัวเปลี่ยนไป

ตำแหน่งคีย์เฟรม

ตัวอย่างนี้ใช้ <KeyFrameSet> เพื่อเปลี่ยนตำแหน่ง Y ของมุมมองระหว่าง ภาพเคลื่อนไหว

รูปที่ 4 การลากมุมมองและเปลี่ยนตำแหน่ง Y

การประมาณค่าคีย์เฟรม

ตัวอย่างนี้สร้างขึ้นจากตัวอย่างตำแหน่งคีย์เฟรม โดยเพิ่มการหมุนและการปรับขนาดลงในการเปลี่ยนมุมมอง

รูปที่ 5 การลากมุมมองและเปลี่ยนตำแหน่ง Y การหมุน และการปรับขนาด

วงจรคีย์เฟรม

ตัวอย่างนี้เพิ่มองค์ประกอบ <KeyCycle> เพื่อเพิ่มภาพเคลื่อนไหวแบบคลื่นให้กับมุมมอง

รูปที่ 6 การลากมุมมองที่มีภาพเคลื่อนไหวแบบคลื่น ขณะที่เปลี่ยนสี

CoordinatorLayout (1/2)

ตัวอย่างนี้เพิ่ม MotionLayout ลงใน AppBarLayout ที่มีอยู่เพื่อเพิ่มภาพเคลื่อนไหวให้กับแถบแอป ตัวอย่างนี้อธิบายไว้เพิ่มเติมใน บทนำเกี่ยวกับ MotionLayout (ส่วนที่ 3)

รูปที่ 7 การเลื่อนเนื้อหาขณะที่แถบแอป ขยาย

CoordinatorLayout (2/2)

ตัวอย่างนี้เพิ่ม MotionLayout ลงใน AppBarLayout ที่มีอยู่เพื่อเพิ่มภาพเคลื่อนไหวให้กับแถบแอป

รูปที่ 8 การเลื่อนเนื้อหาขณะที่แถบแอป ขยายและข้อความเคลื่อนไหวเข้าและออกจากแถบแอป

DrawerLayout (1/2)

ตัวอย่างนี้แสดงวิธีเพิ่มภาพเคลื่อนไหวลงใน DrawerLayout ตัวอย่างนี้ อธิบายไว้เพิ่มเติมใน บทนำเกี่ยวกับ MotionLayout (ส่วนที่ 3)

รูปที่ 9 การขยาย `DrawerLayout`

DrawerLayout (2/2)

ตัวอย่างนี้แสดงวิธีเพิ่มภาพเคลื่อนไหวลงใน DrawerLayout

รูปที่ 10 การขยาย `DrawerLayout` ด้วย ข้อความเมนูที่มีภาพเคลื่อนไหว

แผงด้านข้าง

ตัวอย่างนี้แสดงวิธีแสดงแผงด้านข้างเมื่อลากพื้นที่เนื้อหาหลักไปทางขวา

รูปที่ 11 การแสดงแผงด้านข้างโดยการลาก เนื้อหาหลัก

พารัลแลกซ์

ตัวอย่างนี้แสดงพื้นหลังแบบพารัลแลกซ์ ซึ่งเลเยอร์พื้นหลังต่างๆ จะเคลื่อนที่ด้วยความเร็วที่แตกต่างกัน

รูปที่ 12 เอฟเฟกต์พารัลแลกซ์ในรูปภาพส่วนหัว

ViewPager

ตัวอย่างนี้แสดงวิธีเพิ่มภาพเคลื่อนไหวเมื่อปัดระหว่างแท็บ ViewPager ตัวอย่างนี้อธิบายไว้เพิ่มเติมใน บทนำเกี่ยวกับ MotionLayout (ส่วนที่ 3)

รูปที่ 13 เอฟเฟกต์พารัลแลกซ์ในรูปภาพส่วนหัวขณะปัด `ViewPager`

ViewPager - Lottie

ตัวอย่างนี้แสดงวิธีเพิ่มภาพเคลื่อนไหวเมื่อปัดระหว่างแท็บ ViewPager

รูปที่ 14 รูปภาพที่แสดงเอฟเฟกต์ Lottie ในรูปภาพส่วนหัวขณะปัด `ViewPager`

ภาพเคลื่อนไหวแบบซับซ้อน (1/3)

ตัวอย่างนี้รวมองค์ประกอบจากตัวอย่างก่อนหน้าเพื่อแสดงภาพเคลื่อนไหวแบบซับซ้อน

รูปที่ 15 การรวมเอฟเฟกต์เพื่อสร้าง ภาพเคลื่อนไหวแบบซับซ้อน

ภาพเคลื่อนไหวแบบซับซ้อน (2/3)

ตัวอย่างนี้รวมองค์ประกอบจากตัวอย่างก่อนหน้าเพื่อแสดงภาพเคลื่อนไหวแบบซับซ้อน

รูปที่ 16 การรวมเอฟเฟกต์เพื่อสร้าง ภาพเคลื่อนไหวแบบซับซ้อน

ภาพเคลื่อนไหวแบบซับซ้อน (3/3)

ตัวอย่างนี้รวมองค์ประกอบจากตัวอย่างก่อนหน้าเพื่อแสดงภาพเคลื่อนไหวแบบซับซ้อน

รูปที่ 17 การรวมเอฟเฟกต์เพื่อสร้าง ภาพเคลื่อนไหวแบบซับซ้อน

การเปลี่ยน Fragment (1/2)

ตัวอย่างนี้แสดงวิธีใช้ MotionLayout เพื่อเปลี่ยนระหว่าง Fragment

รูปที่ 18 การเปลี่ยน Fragment

การเปลี่ยน Fragment (2/2)

ตัวอย่างนี้แสดงวิธีใช้ MotionLayout เพื่อเปลี่ยนระหว่าง Fragment

รูปที่ 19 การเปลี่ยน Fragment

ภาพเคลื่อนไหวคล้าย YouTube

ตัวอย่างนี้แสดงการเปลี่ยนระหว่างมุมมองขนาดกะทัดรัดกับการใช้งานแบบเต็มหน้าจอที่มีเนื้อหาเพิ่มเติม

รูปที่ 20 การเปลี่ยน Fragment คล้ายกับ YouTube

KeyTrigger

ตัวอย่างนี้แสดงวิธีแสดงและซ่อนปุ่มการทำงานแบบลอยเมื่อการเปลี่ยนข้ามเกณฑ์ความคืบหน้า

รูปที่ 21 แสดงและซ่อนปุ่มการทำงานแบบลอย

หลายรัฐ

ตัวอย่างนี้แสดงวิธีใช้สถานะเพื่อกำหนดภาพเคลื่อนไหวที่จะใช้

รูปที่ 22 ภาพเคลื่อนไหวต่างๆ ตามสถานะ