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