AWTK 自定義的字型載入器的例子

2021-10-08 23:41:23 字數 1235 閱讀 5782

自定義的字型載入器的例子(可以根據自己的情況進行改造和完善)。

在有平台上,內部 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是系統自帶,當然系統自帶的也有好幾種...