自定義的字型載入器的例子(可以根據自己的情況進行改造和完善)。
在有平台上,內部 flash 很小,不足以存放字型資源。放在檔案系統裡,又沒有足夠的記憶體來載入整個字型檔案。此時需要自定義字型載入器,以便只載入當前需要的部分字型。這裡提供了乙個自定義的字型載入器的例子(可以根據自己的情況進行改造和完善)。
在這個例子中,採用了與 awtk 中位圖字型同樣的資料格式,字型資料放在外部檔案中,只是載入索引到記憶體,可以大大減少記憶體的需求。如果你的平台連載入完整索引的記憶體都沒有,那需要自己改造一下,使用稀疏索引的方式。
獲取 awtk 並編譯
git clone
cd awtk; scons; cd -
獲取 awtk-custom-font-loader 並編譯
git clone
cd awtk-custom-font-loader; scons
放在檔案系統中的字型資料可以用 awtk 提供的 fontgen 生成。如:
../awtk/bin/fontgen design/default/fonts/default.ttf design/default/fonts/text.txt data/font_20.bin 20
./scripts/update_res.py all
./bin/demo
本文以 linux/macos 為例,windows 可能會微妙差異,請酌情處理。
static ret_t add_custom_font
(const
char
* font_name,
const
char
* filename)
請參考 window_main.c(
void
)
請參考 window_main.c如:
data_reader_factory_register
(data_reader_factory()
,"flash"
, data_reader_flash_create)
;
自定義類載入器
注 class.forname name,initialize,loader 帶參函式也可控制是否載入static塊。並且只有呼叫了newinstance 方法採用呼叫建構函式,建立類的物件 如果乙個類載入器收到了類載入的請求,它首先不會自己去嘗試載入這個類,而是把請求委託給父載入器去完成,依次向上...
自定義類載入器
我們自己約定的需求如下,我們從外部路徑 tmp myclasspath 載入類 具體實現如下 public class myclassloader extends classloader catch ioexception e 測試 public static void main string ar...
TextView的自定義字型
這裡有兩種實現方法 1 這種實現方法比較簡單。但是只能設定個別的字型,結果可能不是你想要的。winp.settext typeface.default bold winp.settypeface typeface.default bold default bold是系統自帶,當然系統自帶的也有好幾種...