第六篇:在SOUI中用九宫格拉伸方式显示一个图片资源
SOUI的初学者刚开始可能难以搞清楚在SOUI中显示一个图片资源的流程,这里做一个简单的示范。
首先我们准备好一张图,以下图为例。
第一步,我们首先把这个图片文件复制到demo的uires目录下,新建一个目录jpg,下面只有这一个文件9.jpg
第二步,我们需要在uires.idx中引入该图片资源
<jpg>
<file name="girl" path="jpg\9.jpg"/>
</jpg>
我们给这个资源命名为"girl"。
第三步,我们在全局或者窗口局部的skin结点中定义一个imgframe对象。这里定义在主窗口的局部skin中。
<skin>
<!--局部skin对象-->
<gif name="gif_horse" src="gif:gif_horse"/>
<gif name="gif_penguin" src="gif:gif_penguin"/>
<imgframe name="skin_girl" src="jpg:girl" margin-x="150" margin-y="150"/>
</skin>
注意上面代码中对girl的引用,我们保留x及y方向各150个点不拉伸。
第四步,在UI中定义一个img控件对象来显示该图片。
<page title="jpg:girl">
<img pos="0,0,-0,-0" skin="skin_girl"/>
</page>
大功告成!
我们运行一下程序看看效果。
下面是缩小状态:
可以看到边缘的点和中间的点拉伸不一样。
再看看放大一点的状态:
这样效果看上去好些了。
全部工作就是修改XML文件,不需要涉及一行C++代码,即可完成一个图片的显示。
从文件中加载图片基本类似,可以参考demo中从文件中加载GIF动画的例子。
第六篇:在SOUI中用九宫格拉伸方式显示一个图片资源的更多相关文章
- UI-UIImageView的图片填充方式(contentMode)_图片作为控件背景图的拉伸方式(stretch)介绍
常用图片填充方式 这里只介绍三个最常用的图片填充方式 UIViewContentModeScaleToFill模式会导致图片变形.例如: UIViewContentModeScaleAspectFit ...
- 第二十六篇:两个SOUI新控件 ---- SListView和SComboView(借用Andorid的设计)
SOUI原来实现的SListBoxEx的效率一直是我对SOUI不太满意的地方.包括后来网友实现的SListCtrlEx. 这类控件为每一个列表项创建一个SWindow来容纳数据,当数据量比较大(100 ...
- Egret入门学习日记 --- 第十六篇(书中 6.10~7.3节 内容)
第十六篇(书中 6.10~7.3节 内容) 昨天搞定了6.9节,今天就从6.10节开始. 其实这个蛮简单的. 这是程序员模式. 这是设计师模式. 至此,6.10节 完毕. 开始 6.11节. 有点没营 ...
- 解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译)
解剖SQLSERVER 第十六篇 OrcaMDF RawDatabase --MDF文件的瑞士军刀(译) http://improve.dk/orcamdf-rawdatabase-a-swiss-a ...
- 解剖SQLSERVER 第六篇 对OrcaMDF的系统测试里避免regressions(译)
解剖SQLSERVER 第六篇 对OrcaMDF的系统测试里避免regressions (译) http://improve.dk/avoiding-regressions-in-orcamdf-b ...
- 第十一篇:SOUI系统资源管理
SOUI资源管理模块 从前篇已经讲到在SOUI中所有资源文件通过一个uires.idx文件进行索引. 这里将介绍在程序中如何引用这些资源文件. 在SOUI系统中,资源文件通过一个统一的接口对象读取: ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单
我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...
- RabbitMQ学习总结 第六篇:Topic类型的exchange
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
随机推荐
- KendoUI之kendoGrid服务端分页
parameterMap:设定传递给服务器的当前页数与每页大小,django下用get方法有效,post方法无法取得这2个参数shema.total:设定总行数serverPaging: true / ...
- Qt 常用的功能
1.程序重启 void Widget::reStart() { qApp->closeAllWindows(); QProcess::startDetached(qApp->appli ...
- 安装CentOS 7时出现No Caching mode page found问题的解决
将CentOS 7镜像刻到U盘之后,向服务器安装时,使用U盘启动会出现两种启动选项,一种是UEFI启动选项,一种是默认的启动选项,如果不使用UEFI方式安装,那么一般是没有问题的,如果选择UEFI方式 ...
- mysql-5.6.23-winx64.zip版本安装记录
*操作系统:Win7 64位旗舰版 一.解压至任意目录,此处以“E:\mysql-5.6.23-winx64”为例: 二.设置环境变量:新建变量名 MYSQL_HOME,值为解压的路径 E:\mysq ...
- Effective C++ -----条款35:考虑virtual函数以外的其他选择
virtual函数的替代方案包括NVI手法及Strategy设计模式的多种手法.NVI手法自身是一个特殊形式的Template Method设计模式. 将机能从成员函数移到class外部函数,带来的一 ...
- linux 配置tomcat运行远程监控(JMX)
在实际使用中,我们经常要监控tomcat的运行性能.需要配置相应的参数提供远程连接来监控tomcat服务器的性能.本文详细介绍如何一步一步的配置tomcat相应参数.允许远程连接监控. 工具/原料 v ...
- Rabbitmq实现负载均衡与消息持久化
Rabbitmq 是对AMQP协议的一种实现.使用范围也比较广泛,主要用于消息异步通讯. 一,默认情况下Rabbitmq使用轮询(round-robin)方式转发消息.为了较好实现负载,可以在消息 ...
- 手工加载DLL
1.为了能找到dll的函数地址,生成dll时需要将其中的函数声明为C函数(extern "C"): #ifndef __MYDLL_H#define __MYDLL_H #ifde ...
- Android WebView 拦截自定义协议
URL 语法 URL由三部分组成:资源类型.存放资源的主机域名.资源文件名. URL的一般语法格式为: (带方括号[]的为可选项): protocol :// hostname[:port] / pa ...
- xml配置文件
xml文件的层级结构 configuration 配置 properties 属性 settings 设置 typeAliases 类型命名 typeHa ...