มาลองใช้ Custom Font ใน Android กัน

Starboy
AMPOS Developers
Published in
2 min readFeb 22, 2018
คนละ font
เลือก font ก็เหมือนเลือกรองเท้า font ประเภทต่างๆ ก็เหมาะสมกับงานที่แตกต่างกันออกไป

บางทีเราก็อยากจะทำให้แอพของเราสวย ดูดี มีลูกเล่น ดูไม่น่าเบื่อ หรือว่าโดนดีไซเนอร์จัดเต็ม มาซะอลังการ 😭😭

แต่ก่อนในการใช้ 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 ตัวเดียวกัน แต่มีตัวเอียง ตัวหนา เราก็สามารถจัดให้มันอยู่ในไฟล์เดียวกันได้

ค่าของ font weight ที่ใช้

หากสงสัยว่าตัวเลข 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

--

--