第三十三篇:使用uiresImporter生成uires.idx及skin.xml

在SOUI中,使用uires.idx這個文件來記錄程序中使用的全部資源文件。編輯器

此外繪製對象(ISkinObj)則通常放在skin.xml中描述。工具

要向一個界面中增長一個新的圖片,在沒有uiresImporter以前,首先咱們須要把新的圖片資源增複製到uires下的某個目錄下,而後在uires.idx中加一條文件記錄,而後在skin.xml中使用一個適當的skin類型(通常是imglist,imgframe)來描述圖片的顯示方式,再在UI中引用該skin來繪製。ui

因爲SOUI目前沒有提供UI編輯器,全部的XML都須要手寫,圖片不少的時間文件導入是一個很麻煩又容易出錯的工做。spa

根據前段時間一個網友製做的內部使用的SOUI輔助工具的思想,我開發了uiresimporter這個工具。命令行

uiresimporter.exe位於SOUI的tools目錄下,對應源代碼在tools\src\uiresimporter裏。code

uiresimporter的目標就是試圖解決手動增長資源的麻煩。xml

和uiresBuilder同樣,uiresimporter也是一個命令行工具,它支持5個參數,見下面示例代碼(demos\mclistview_demo\uiresimporter.bat):對象

1 rem 使用uiresImporter來自動導入資源到uires.idx及values\skin.xml.
2 rem -p中指定uires目錄。
3 rem -s中指定須要在uires.idx中自動更新的文件夾。存在多個目錄時應該使用"a|b|c"這樣的形式分割,並使用引號。
4 rem -i參數中指定的圖片支持自動生成skin,自動生成skin只支持imglist,imgframe兩種,不支持的圖片放到其它目錄,如示例中的滾動條皮膚。
5 rem -b yes自動備份原有XML。no不備份。
6 rem -c yes 皮膚默認支持着色處理,no 默認禁止着色。
7 %SOUIPATH%\tools\uiresImporter.exe -p uires -s "layout|icon|imgx" -i image -b yes -c no

爲了自動導入圖片,咱們須要爲圖片的文件名作點修改:uiresimporter經過文件名後的以[]包含的內容來識別圖片顯示格式。blog

能夠有3種格式:圖片

一、對於imglist,只須要在[]中指定一個子圖數量便可,如btn_login[3].png,這樣uiresimporter自動生成一個名字爲btn_login的imglist對象,這個對象有3種狀態。(當不指定[x]時,也生成一個imglist對象,狀態數量爲1。

二、對於imgframe,有一種完成的方式和一種縮略形式:

  2.1 徹底形式:bg_login[1{2,40,2,10}].png。這表明圖片只有一個狀態,它的九宮切分爲left:2,top:40,right:2,bottom:10。

  2.2 縮略形式:bg_login[1{2,5}].png。當九宮的上下及左右大小相同時,可使用縮略形式來命名。

2016-5-2號版本新增長如下可選參數:

{ec=0/1} 是否支持皮膚着色(enableColorize)

{fit=0/1} 自適應繪圖標誌

{tile=0/1} 平鋪標誌

{filter=0/1/2/3} 插值濾鏡類型, 0=null, 1=low, 2= midium, 3=high

{vert=0/1} 子圖垂直排列標誌。

在imgframe中,上述新標誌必須在margin標誌以後,不然margin標誌將不能識別。

注:若是是須要將資源編譯到EXE,導入文件後記得使用uiresbuilder來從新生成.rc2文件。

相關文章
相關標籤/搜索