มาลองใช้ Custom Font ใน Android กัน
บางทีเราก็อยากจะทำให้แอพของเราสวย ดูดี มีลูกเล่น ดูไม่น่าเบื่อ หรือว่าโดนดีไซเนอร์จัดเต็ม มาซะอลังการ 😭😭
แต่ก่อนในการใช้ custom font ใน android ต้องใช้ Library Calligraphy ที่มาช่วยในการตั้งค่า typeface ให้ โดยวิธีการ set up นั้นดูจะงงๆ หน่อย และบางทีก็รู้สึกว่ามันซับซ้อนไป ยิ่งไปกว่านั้น! มันพรีวิวใน Android Studio ไม่ได้ ไปลุ้นกันเอาตอน run time เอาเองละกัน ซึ่งก็เสียเวลา build ไปอีก
Support Library
ในที่สุด Google ก็ได้เพิ่ม Font as Resource เพื่อสามารถใช้ Custom font ได้ ง่ายขึ้น มาใน Android Oreo และยังทำ support Library ให้ Android Version ก่อนหน้าด้วย 😂😂 โดยสามารถใช้ได้ตั้งแต่ Version 4.1 ( Jelly Bean ) เป็นต้นไป
Set up
เริ่มจากสร้าง Folder font ใน Resource ก่อน
จากนั้น copy ไฟล์ font ไปไว้ใน folder res/font
ที่สร้างขึ้นมา โดยต้องตั้งชื่อไฟล์ให้เป็น และformat ที่รองรับจะเป็น .ttf
, .otf
, และ .ttc
ลองเรียกใช้ดู โดยใช้ android:fontFamily
เท่านี้ก็ใช้ได้แล้วววว พรีวิวได้สวยงาม
Font Family
เวลาเรามี font ตัวเดียวกัน แต่มีตัวเอียง ตัวหนา เราก็สามารถจัดให้มันอยู่ในไฟล์เดียวกันได้
หากสงสัยว่าตัวเลข 400 700 คืออะไร มันคือความหนาของ font ตั้งแต่ 100 จนถึง 900 ซึ่งตัว ปกติ มีความหนาที่ 400 และ ตัวหนา มีความหนาอยู่ที่ 700
ดังนั้นapp:fontWeight="400"
คือตัวธรรมดา, app:fontWeight="700"
คือตัวหนา และ app:fontStyle="italic"
คือตัวเอียง
เวลาใช้ก็เรียกได้จาก android:textStyle
Programmatically
ถ้าจำเป็นต้องset ผ่าน code ก็สามารถ เปลี่ยน font โดยใช้วิธี typeface โดยเรียก typeface ได้จาก ResourcesCompat
Summary
จากการที่ Google ได้ออก Feature Custom Font ให้ใช้ได้ง่ายขึ้น ดูเข้ากับระบบมากขึ้น ใช้งานได้ง่ายขึ้น แต่ความสามารถยังไม่หมด ยังมี การใช้ Font ที่โหลดผ่าน server มา ไปศึกษาเพิ่มเติมได้ที่ Android document