Wednesday, November 16, 2016

Android System မွာ Font ေတြဘယ္လိုအလုပ္လုပ္သလဲ



Android System မွာ Font ေတြဘယ္လိုအလုပ္လုပ္သလဲဆိုတာကို
 ေလ့လာလိုၾကတဲ့ ညီိအကိုေတြအတြက္ ဆရာ Sithu Paing ရဲ့ Android System စာအုပ္ထဲမွ ေရးသားခ်က္ကို ျပန္လည္ေဖၚျပေပးလိုက္ပါတယ္။

ဒီပိုစ့္ကို ေရးလိုက္ရျခင္းအေၾကာင္းကေတာ့ အခုေနာက္ပိုင္း Lollipop ဗားရွင္းအထက္ 
7.0 အထိ ဗားရွင္း အျမင့္ဖုန္းေတြအတြက္ ျမန္မာစာအမွန္ထည့္သြင္းႏိုင္ဖို႔ ဆရာစာအုပ္တြင္
Replacing Method & XML Method ဆိုၿပီး ႏွစ္ခုပါ၀င္လာပါတယ္၊ အဲဒီ နည္းလမ္း
 ႏွစ္မိ်ဳးစလံုးကို က်ေနာ္ စမ္းသပ္အသံုးျပဳၾကည့္ရင္း အရမ္းအဆင္ေျပလို႔ အဲဒီ နည္းလမ္း
 ႏွစ္မိ်ဳးကို ဘယ္လိုစမ္းသပ္ ေအာင္ျမင္ခဲ့သလဲဆိုတဲ့ အေတြ႔အၾကံဳ မ်ားကို ခ်ေပးခ်င္တာေၾကာင့္
ဆရာစာအုပ္ထဲတြင္ ပါ၀င္ေနသည့္ ဒီစာပိုဒ္ကို အရင္ ေရးလိုက္ရျခင္းပဲ ျဖစ္ပါတယ္။


 Android မွာ Font File ( .ttf ) ေတြကို system/fonts ေအာက္မွာထည့္ထားပါတယ္၊ ဒါေပမယ့္
system/fonts ေအာက္ကို Font file သြားထည့္လိုက္ရံုနဲ႔ေတာ့ ၎ Font ကိုျမင္ရမွာမဟုတ္ပါဘူး။

Android မွာ စာဖိုင္ေတြကိုေတြ႔ၿပီဆိုတာနဲ႔ ပထမဆံုး system/etc ထဲမွာရွိတဲ့ system_fons.xl ဆိုတဲ့
ဖိုင္ထဲမွာ မွတ္တမ္းတင္ထားတဲ့ စာရင္းမွာပါမပါ စစ္ေဆးပါတယ္၊ ၎ system_fonts.xml ထဲမွာ
မွတ္တမ္းတင္ထားတဲ့ စာရင္းထဲပါရင္ ၎ Font Style အတိုင္ျပေပးမွာျဖစ္ပါတယ္။

တကယ္လို႔ system_fonts.xml စာရင္းထဲမွာ မပါတဲ့ Font အမိ်ဳးအစားဆိုရင္ေတာ့ system/etc ထဲက
fallback_fonts.xml ဆိုတဲ့ XML File ထဲက Font List မွာပါ ထပ္ၿပီးေတာ့ စစ္ေဆးပါတယ္။

အဲဒီလိုစစ္ေဆးတဲ့အခါမွာလည္း အေပၚကေန ေအာက္ဘက္ အထိ အစဥ္အတိုင္းစစ္ေဆးပါတယ္၊
၎စာလံုးေတြကို ျပေပးႏိုင္မယ့္ Font ေတြ႔ၿပီဆိုတာနဲ႔ အဲဒီ Font Style ကိုသံုးၿပီးျပေပးပါတယ္။

ဒါက Android System မွာ Font ေတြ အလုပ္လုပ္ပံုကို အၾကမ္းဖ်င္းရွင္းျပေပးလိုက္တာပဲျဖစ္ပါတယ္၊
ဒါဆိုရင္ Android ဖုန္းေတြမွာ ျမန္မာေဖာင့္ အမွန္ျမင္ရဖို႔အတြက္ ဘယ္လိုလုပ္မလဲ?

Method ႏွစ္မိ်ဳး
=========
Android ဖုန္းမ်ားကို ျမန္မာစာသြင္းတဲ့အခါ Method ႏွစ္မိ်ဳးကို
အသံုးမ်ားပါတယ္၊ ေအာက္မွာ ေလ့လာၾကည့္လိုက္ပါ။


Replacing Method
============
ဒီနည္းက ခုနေျပာတဲ့ system_fonts.xml စာရင္းထဲမွာပါတဲ့ system font တစ္ခုခုနဲ႔
နာမည္တူ Change ေပးလိုက္တာျဖစ္ပါတယ္၊ ဒါကို Replacing Method လို႔ေခၚပါတယ္။

System Fonts ကိုနာမည္တူ Change ေပးရမယ္ဆိုေတာ့ ကၽြန္ေတာ္တို႔ သြင္းမယ့္ Font File ကို
၎ System Font နဲ႔နာမည္တူ ေျပာင္းေပးရမွာေပါ့၊ ၿပီးေတာ့မွ ခုနက Font ေတြထားတဲ့ ေနရာျဖစ္တဲ့
system/fonts ေအာက္ကို သြားၿပီး ထားေပးရမွာပါ၊ အရင္ရွိၿပီးသား system Font နဲ႔ Replace လုပ္ေပးရမွာေပါ့။


 XML Method
=========
ဒီ ဒုတိယနည္းကေတာ့ fallback_fonts.xml ကိုျပင္တာပါ၊ ဖုန္းတစ္လံုးနဲ႔တစ္လံုး
fallback_fonts.xml မွာပါတဲ့ Font ေတြက အတိအက်မတူပါဘူး၊ ကၽြန္ေတာ္ကေတာ့
၎ fallback_fonts.xml ကို ADB Command သံုးၿပီး PC ထဲဆြဲထုတ္၊ XML File ကို
Notepad++ နဲ႔ျပင္၊ ၿပီးေတာ့မွ system/etc ေအာက္ကမူလ fallback_fonts.xml ေနရာမွာ
ျပန္အစားထိုးလိုက္တာပါ။

တကယ္လို႔ စာဖတ္သူက fallback_fonts.xml ကိုဆြဲထုတ္ၿပီး မျပင္ခ်င္ဘူးဆိုရင္
၎ fallback_fonts.xml ထဲက Font Family ထဲကို Font အသစ္ထည့္လို႔ရပါေသးတယ္။

ဒါကေတာ့ /vendor/etc/ ထဲမွာ fallback_fonts.xml ဖိုင္တစ္ခုထည့္ေပးရမွာပါ၊ ဒါေပမယ့္
ဒီ fallback_fonts.xml ထဲက စာရင္းထဲမွာေတာ့ စာဖတ္သူထည့္မယ့္ Font Family တစ္ခုပါရင္ ရပါၿပီ။

ဒါေပမယ့္ ၎ Font ကို system/etc ထဲက fallback_fonts.xml ထဲမွာ ဘယ္ႏွစ္ခုေျမာက္မွာ
ထည့္ခ်င္လည္းဆိုတဲ့ Order ကိုေတာ့သတ္မွတ္ေပးရပါတယ္၊ XML ေတြအားလံုးျပင္ၿပီးမွ system/fonts
ထဲမွာ စာဖတ္သူထည့္မယ့္ Font အသစ္ကိုထည့္ေပးရမွာပါ၊ နာမည္ေျပာင္းစရာမလိုေတာ့ပါဘူး။


 Replacing Method ျဖင့္ Font File ကို Replace လုပ္နည္းနဲ႔
XML Method ျဖင့္ fallback_fonts.xml ေနရာမွာ ျပန္အစားထိုး
ထည့္သြင္းနည္းမ်ားကို ဆက္လက္တင္ေပးသြားမွာပဲျဖစ္ပါတယ္။





 Credit : ဆရာ Sithu Paing (Android System) 






 ဇူးနစ္(နည္းပညာ)




www.zunite.org

No comments:

Post a Comment