在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文件。