Our SuccessKnowledges
NEXTZY Logo
Crews
Chat
Talk with Team
NEXTZY Logo
NEXTZY
Chat
Home>Knowledges

เข้าใจการทำ Selector แบบ Ripple effect

Share:

เข้าใจการทำ Selector แบบ Ripple effect

Table of contents

  • Clipping mask (หน้ากาก)
  • มาดูในโค้ดกัน
  • Summary
Nonthawit

Nonthawit

CEO | Engineer | Designer

VIEW

2,011

CATEGORY

Technical

LAST UPDATED

December 8, 2017

Nonthawit

Nonthawit

CEO | Engineer | Designer

VIEW

2,011

CATEGORY

Technical

LAST UPDATED

December 8, 2017

Android developer ทุกคนคงไม่มีใครไม่รู้จัก selector กันเนาะย้อนไปตอน android lollipop เรามีสิ่งที่เรียกว่า Material Design เกิดขึ้น ทำให้เรามี design guidelines ใหม่ให้เราได้ follow กัน ไม่ว่าจะเป็นเรื่อง สี, layout, animation และอื่นๆอีกเยอะแยะ ทำให้ผู้ใช้มีประสบการณ์การงานแอปเราดียิ่งขึ้น (UX) ตามต่อกันได้ที่

Introduction - Material Design
Create a visual language that synthesizes classic principles of good design with the innovation and possibility of…material.io

ซึ่งหนึ่งในเรื่องที่เราจะหยิบมาพูดในวันนี้คือ ripple effect ใน material design นั่นเองว่ามันมีหลักการเขียน selector อย่างไร 😎

ภาพด้านซ้ายเป็น selector แบบธรรมดาไม่มีอะไร พอเป็นด้านขวาเราใส่ selector แบบ ripple effect เข้าไปก็

ทำให้ UX ในการใช้ ดูดีขึ้น ดูมีมิติ น่ากดมากขึ้น

ซึ่งใครหลายคนอาจมองข้ามจุดนี้ไป บอกเลยว่าแอบสำคัญมากนะมันสามารถเปลี่ยนอารมณ์การใช้งานเราทั้งแอปได้เลย

แต่มีข้อแม้อย่างหนึ่งของการใช้คือ ต้องเป็น api version 21 ขึ้นไปนะ

เพราะมันเป็น feature ที่มาพร้อมกับ android lollipop

น่าจะพอเห็นความสำคัญของมันกันไม่มากก็น้อย ต่อไปก่อนจะลงโค้ดกันเราต้องเข้าใจเรื่อง mask เสียก่อน

Clipping mask (หน้ากาก)

ภาพจาก Korean sister juney ❤️

concept ของ mask ใครเคยใช้ photoshop หรือ illustrator มามันคือสิ่งเดียวกันเลย ซึ่งทาง android ก็ใช้เทคนิคนี้ในการทำ selector แบบ ripple effect เช่นกัน

มันคือการตัดภาพให้เท่ากับรูปร่างของ shape ด้านบนนั่นเอง

(ไม่สนเรื่องสีนะสีอะไรก็ได้)

แค่นี้แหละง่ายมาก

มาดูในโค้ดกัน

ไฟล์ที่เราใช้ตามนี้ตามหลักของการทำ selector

  • normal state
  • focused state
  • presses state

ให้สังเกตที่ไฟล์ lollipop_round_primary_selector.xml แยกไว้สองที่เพื่อแยก selector แบบธรรมดา กับ selector แบบ ripple effect นั่นเอง

ดูบรรทัดที่ 5

android:id="@android:id/mask" (ทำให้ item เป็น mask)

เราแปะ mask item ไว้ด้านบนสุดเพื่อให้ ripple effect มันอยู่ในกรอบของ “@drawable/lollipop_round_primary_mask” นั่นเอง

ซึ่ง shape ที่เราเอามาทำเป็น mask คือ rectangle shape สีดำธรรมดา (จริงสีอะไรก็ได้ไม่มีผลอะไร)

พอทำเสร็จเราก็จะได้ออกมาเป็น ripple สวยงามแบบนี้

คำถามคือถ้าเราเปลี่ยน mask เป็นอย่างอื่นหละมันจะเป็นอย่างไร

งั้นเรามาลองเปลี่ยนเป็นวงกลมธรรมดากัน

don’t do this

ripple effect จะอยู่แค่ในวงกลมนั่นเองซึ่งไม่ควรทำเนาะ

สรุป: เพราะฉะนั้น ripple effect มันจะอยู่ในกรอบ ของ mask เท่านั้น 😎

Summary

UX ของผู้ใช้เป็นเรื่องที่สำคัญมากที่เราควรตระหนักกันให้มากๆนะ

การเปลี่ยนอะไรนิดหน่อยในแอปเรา ไม่ว่าจะเป็น สี layout หรือ animiation ต่างๆ ก็สามารถส่งผลต่อผู้ใช้ได้โดยตรง อาจะทำให้แย่ลงหรือดีขึ้นก็ขึ้นอยู่กับว่าเราใช้มันถูกที่ถูกเวลาหรือไม่มันจึงเกิด design guidelines ต่างๆให้เราได้ follow กันซึ่งเราไม่ควรมองข้ามนะ

วันนี้พอแค่นี้เจอกันบล็อคหน้าเนาะ 😎


อย่าลืม share ให้มนุษย์ Android คนอื่นด้วยหละ 😎

Share:

KNOWLEDGE

Related Articles

20 สิ่ง ที่ได้หลังจากเป็น Android developer ที่ Nextzy 3 เดือน
Nonthawit

Nonthawit

CEO | Engineer | Designer

20 สิ่ง ที่ได้หลังจากเป็น Android developer ที่ Nextzy 3 เดือน

บทความนี้แชร์ประสบการณ์ 3 เดือนแรกของการทำงานเป็น Android Developer ที่ Nextzy ครอบคลุมทั้งด้าน technical เช่น MVP architecture, Android Lifecycle, ProGuard, Git workflow และการเขียน Unit Test รวมถึงด้าน soft skill อย่างการสื่อสารกับทีม, การแชร์ความรู้, และการเขียนโค้ดให้ readable และยืดหยุ่น นอกจากนี้ยังสะท้อนวัฒนธรรมองค์กรที่เน้นทีมเวิร์ค การ review โค้ด และบรรยากาศการทำงานที่สนุกสนาน ซึ่งล้วนช่วยลด learning curve และพัฒนาทักษะได้เร็วกว่าการเรียนรู้คนเดียว

[Tip/Trick] วิธีติดต่อกับ WebView ผ่าน JavascriptInterface มันเท่มาก
Nonthawit

Nonthawit

CEO | Engineer | Designer

[Tip/Trick] วิธีติดต่อกับ WebView ผ่าน JavascriptInterface มันเท่มาก

Quantum Computer จะมาปฏิวัติอุตสาหกรรมโลกครั้งต่อไป ไม่ต่างอะไรกับยุคที่เปลี่ยนจากแรงงานคนมาเป็นพลังไอน้ำในศตวรรษที่ 18
Nonthawit

Nonthawit

CEO | Engineer | Designer

Quantum Computer จะมาปฏิวัติอุตสาหกรรมโลกครั้งต่อไป ไม่ต่างอะไรกับยุคที่เปลี่ยนจากแรงงานคนมาเป็นพลังไอน้ำในศตวรรษที่ 18

Quantum Computer คือ "เครื่องจักรไอน้ำ" แห่งศตวรรษที่ 21 — เมื่อกฎของมัวร์เริ่มถึงทางตัน นักวิทยาศาสตร์จึงหันมาสร้างคอมพิวเตอร์ที่ใช้ทรานซิสเตอร์ระดับอะตอม ประมวลผล 0 และ 1 พร้อมกันได้ในทีเดียว (Qubit) เร็วกว่าคอมทั่วไปหลายร้อยล้านเท่า บทความนี้พาย้อนดูตั้งแต่การปฏิวัติอุตสาหกรรมครั้งแรก มาจนถึง Quantum Computer ว่ามันคืออะไร ทำงานยังไง มีข้อจำกัดอะไรบ้าง และจะมา disrupt อุตสาหกรรมโลกอย่างไรในอีก 5-10 ปีข้างหน้า

NEXTZY Logo
NEXTZY
48/27 Ratchadaphisek Rd, Samsen Nok, Huai Khwang, Bangkok 10310

Base at Thailand

Thailand

Home

Crews

Success

Download press kits

Knowledges

Chat

Talk with team

SCHEDULE