-
Notifications
You must be signed in to change notification settings - Fork 283
第三十三篇:使用uiresImporter生成uires.idx及skin.xml
原文链接:《第三十三篇:使用uiresImporter生成uires.idx及skin.xml》
在SOUI中,使用uires.idx这个文件来记录程序中使用的所有资源文件。
此外绘制对象(ISkinObj)则一般放在skin.xml中描述。
要向一个界面中增加一个新的图片,在没有uiresImporter之前,首先我们需要把新的图片资源增复制到uires下的某个目录下,然后在uires.idx中加一条文件记录,然后在skin.xml中使用一个适当的skin类型(一般是imglist,imgframe)来描述图片的显示方式,再在UI中引用该skin来绘制。
由于SOUI目前没有提供UI编辑器,所有的XML都需要手写,图片很多的时间文件导入是一个很麻烦又容易出错的工作。
根据前段时间一个网友制作的内部使用的SOUI辅助工具的思想,我开发了uiresimporter这个工具。
uiresimporter.exe
位于SOUI的tools目录下,对应源代码在tools\src\uiresimporter
里。
uiresimporter
的目标就是试图解决手动增加资源的麻烦。
和uiresBuilder
一样,uiresimporter
也是一个命令行工具,它支持5个参数,见下面示例代码(demos\mclistview_demo\uiresimporter.bat
):
rem 使用uiresImporter来自动导入资源到uires.idx及values\skin.xml.
rem -p中指定uires目录。
rem -s中指定需要在uires.idx中自动更新的文件夹。存在多个目录时应该使用"a|b|c"这样的形式分割,并使用引号。
rem -i参数中指定的图片支持自动生成skin,自动生成skin只支持imglist,imgframe两种,不支持的图片放到其它目录,如示例中的滚动条皮肤。
rem -b yes自动备份原有XML。no不备份。
rem -c yes 皮肤默认支持着色处理,no 默认禁止着色。
%SOUIPATH%\tools\uiresImporter.exe -p uires -s "layout|icon|imgx" -i image -b yes -c no
为了自动导入图片,我们需要为图片的文件名做点修改:uiresimporter
通过文件名后的以[]包含的内容来识别图片显示格式。
可以有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文件。
UI? just so so!
- 第一篇:SOUI是什么?
- 第二篇:SOUI源码的获取及编译
- 第三篇:用SOUI能做什么?
- 第四篇:SOUI资源文件组织
- 第五篇:在SOUI中使用XML布局属性指引
- 第六篇:在SOUI中用九宫格拉伸方式显示一个图片资源
- 第七篇:创建一个SOUI的Hello World
- 第八篇:SOUI中控件事件的响应
- 第九篇:在SOUI中使用多语言翻译
- 第十篇:扩展SOUI的控件及绘图对象
- 第十一篇:SOUI系统资源管理
- 第十二篇:SOUI的utilities模块为什么要用DLL编译?
- 第十三篇:在SOUI中使用有窗口句柄的子窗口
- 第十四篇:在SOUI中使用定时器
- 第十五篇:在SOUI中消息通讯
- 第十六篇:SWindow的布局属性pos2type及offset
- 第十七篇:使用窗口的cache属性加速SOUI的渲染
- 第十八篇:在SOUI中实现PreTranslateMessage
- 第十九篇:提高SOUI应用程序渲染性能的三种武器
- 第二十篇:在SOUI中使用分层窗口
- 第二十一篇:SOUI中的控件注册机制
- 第二十二篇:在SOUI中使用代码向窗口中插入子窗口
- 第二十三篇:在SOUI中使用LUA脚本开发界面
- 第二十四篇:导出SOUI对象到LUA脚本
- 第二十五篇:在SOUI中做事件分发处理
- 第二十六篇:两个SOUI新控件 ---- SListView和SComboView
- 第二十七篇:SOUI中控件属性查询方法
- 第二十八篇:SOUI中自定义控件开发过程
- 第二十九篇:使用SOUI的SMCListView控件
- 第三十篇:SOUI模块结构图及SOUI框架图
- 第三十一篇:SOUI布局之相对于特定兄弟窗口
- 第三十二篇:在SOUI2.0中像android一样使用资源
- 第三十三篇:使用uiresImporter生成uires.idx及skin.xml
- 第三十四篇:在SOUI中使用异步通知
﹊﹊﹊﹊﹊﹊﹊﹊﹊﹊
This wiki is created by [SOUI Team]