进公司的第一个项目就是和一个java服务端的小伙伴进行一个充值界面的渲染,分享一下xml的学习和编写经验!
<<1>> 了解xml主要的控件:
首先:elements 标签,它表示项的根标签,包含了许多element子标签
element 标签:元素容器,在页面中,每个元素都是独立的,元素的外层通过element来包装,包含了如下参数:
属性 | 含义 |
id | 元素的唯一标识,自定义 |
contentType | 元素类型,不同类型用数值表示 |
x | x轴方向 |
y | y轴方向 |
width | 容器宽度 |
height | 容器高度 |
percentFlagOfXY | 位置是否为百分比 |
percentFlagOfWH | 宽高是否为百分比 |
attributionId | 所依赖的页面id |
cross | 是否交错 |
view | 是否显示 |
其中,contentType通过数值表示,并且contentType的值与包含的标签对应,不同数值含义如下:
数值 | 含义 |
0 | 文本元素,对应标签 |
1 | 道具占位元素(奖励预览),对应标签 |
2 | 图片元素,对应标签 |
4 | 按钮元素,对应标签 |
5 | 超链接文本元素,对应标签 |
6 | 计时器元素,对应标签 |
7 | 图标元素,对应标签 |
8 | 滚动条元素,对应标签 |
9 | 文本框元素,对应标签 |
10 | 表格元素,对应标签 |
其中出现的各个元素名称:
<elements width="590" height="448" closeButton="true">
<element id="Name1" contentType="0" x="259.000000" y="65.000000" width="95" height="20" percentFlagOfXY="false" percentFlagOfWH="false" attributionId="" cross="true" view="true">
<TextElement text="安鸽鸽" textColor="#ff800000" textSize="32" underLine="false" bAttr="true" />
</element>
<element id="Scroll1" contentType="8" x="21.000000" y="106.000000" width="810" height="436" percentFlagOfXY="false" percentFlagOfWH="false" attributionId="" cross="false" view="true">
<ScrollElement haveBar="true" enableVertical="true" enableHorizontal="false" />
</element>
<element id="biankuang1" contentType="2" x="47.000000" y="119.000000" width="504" height="198" percentFlagOfXY="false" percentFlagOfWH="false" attributionId="" cross="true" view="true">
<PictureElement textureName="interface-23" rectKey="interface-23_shuye" borderTop="0" borderBottom="0" borderLeft="0" borderRight="0" />
</element>
<element id="biankuang2" contentType="2" x="524.000000" y="105.000000" width="28" height="198" percentFlagOfXY="false" percentFlagOfWH="false" attributionId="" cross="true" view="true">
<PictureElement textureName="interface-23" rectKey="interface-23_shubian" borderTop="0" borderBottom="0" borderLeft="0" borderRight="0" />
</element>
<element id="Name2" contentType="0" x="225.000000" y="321.000000" width="95" height="20" percentFlagOfXY="false" percentFlagOfWH="false" attributionId="" cross="true" view="true">
<TextElement text="热热!" textColor="#ff800000" textSize="32" underLine="false" bAttr="true" />
</element>
</element>
contenttype ---- 标签对应的数字
x-----横坐标 y------纵坐标 width-----宽度 height-----高度 percentflagxy---横纵是否百分比显示
percentflagwh----宽高是否百分比显示 attributionid ---归属id cross ----是否交错
view-----是否显示 textcolor---文本颜色 textsize ---文本字体大小 underline---是否有下划线
texturename----纹理名称 rectkey ----矩形 bordertop----上边界 borderbottom---下边界
borderleft-----左边界 bordright------右边界 currentState --当前的状态 texturetextflag ----纹理显
示 texturetextstyle----纹理特征 tipsnumber ----提示数量 normaltexturename --一般纹理数量
normalrectkey----一般矩形名 normaltexturerow --一般纹理行 normaltexturecol-----一般纹理列
disabletextturecol---禁用纹理列 disabletextturerow--禁用纹理行
<<2>> 怎样去写一个xml文件
写一个XML文件最主要的就是理解每个标签的意思,以及还要自己先设置简单的UI界面,用画图打开然后根据网格和坐标来找对应的位置,这样找的位置会相对准确,然后就是确认相应标签的name,主要的就是按键和文本两个显示框,后面的各种属性根据文件需求来加就行了!
<<3>>XML的优缺点
优缺点也是相对的,XML文件渲染的界面的成果取决于准备文件的质量,利用xml进行界面渲染的好处就是很方便,而且不用客户端去进行大量的代码编写(比如系统的编写和协议的联调),缺点就在于不能热更新,服务端进行数据整合和传递时会导致游戏关服等到开服之后才能玩游戏,所以一般常驻活动且界面简单的活动用xml进行渲染效果会更好。