AWTK是基于C語言開發(fā)的跨平臺GUI框架。AWTK使用經驗系列文章將介紹開發(fā)AWTK過程中一些常見問題與解決方案。
AWTK如何裁剪字庫
在AWTK應用開發(fā)過程中可能會遇到添加了某個字符但是顯示不出來,比如攝氏度符號“ ℃ ”,這種情況有可能是字庫文件被裁剪不完整的問題。本章節(jié)將以此為例介紹遇到這種情況的解決方法。
字庫裁剪與還原
字庫裁剪是指在一個原本完整的字庫文件可能用不到那么多字符數(shù)據(jù),于是將用不到的字符數(shù)據(jù)裁剪,保留需要的字符。在AWTK中,字庫裁剪是借用Python腳本實現(xiàn)的,AWTK不僅提供了裁剪功能,同時也提供了還原功能,可以將使用AWStudio裁剪后的字庫還原成完整的字庫。
添加保留的字符
首先打開AWStudio的“項目設置”-“主題設置”界面,在左側主題的字體列表選擇需要裁剪的字體后,再到右側“保留的字符”編輯框編輯需要裁剪的字符。
上面的例子由于是缺少“℃”字符,因此只需要將它添加到“保留的字符”編輯框內,前提要確保原本的字體文件有這個字符的字模。
圖?1?AWStudio項目設置添加裁剪字符
還原與裁剪字體
修改設置后保存并返回AWStudio主頁面,在左下角資源管理器找到上方修改的字體,并依次點擊“還原字體”和“裁剪字體”兩個按鈕。此時前面添加的“ ℃ ”符號便可正常顯示。
圖?2?重新還原與裁剪字體
如何在AWTK使用點陣字
AWTK在顯示矢量字體前需要解碼,這個過程會有性能消耗,因此在一些性能比較低的平臺中解析ttf矢量字體可能會耗時比較久,此時可以選擇使用點陣字的形式顯示。
點陣字在顯示時無需進行解碼,加載速度相比較矢量字體更快。相應的,由于點陣字需要提前解碼好,所以會占用較大空間,因此這個方案相當于用空間換時間。本章節(jié)將介紹如何在AWTK中使用并顯示點陣字體。
首先,在AWStudio打開“項目設置”,將設置中的資源打包方式改為"文件+常量",資源的常量格式修改為帶有"位圖數(shù)據(jù)"的選項。
圖?3?修改資源打包方式與資源常量格式
接著再到“主題”設置頁面,將裁剪格式設置為“Bitmap”,再根據(jù)實際情況選擇字模每像素的位數(shù)、保留的字號、以及保留的字符。
圖?4?主題字體相關設置
在AWStudio點擊“打包”按鈕等待資源打包結束,在工程字體資源目錄(res/assets/default/inc/fonts)看到.data的文件代表打包點陣字體資源文件成功。
最后在編譯awtk與程序時需要進行下面操作才能啟用點陣字體:
定義 WITH_BITMAP_FONT 宏;
關閉 WITH_TRUETYPE_FONT 宏。