【Win 10应用开发】Adaptive磁贴模板的XML文档结构

简介: 原文:【Win 10应用开发】Adaptive磁贴模板的XML文档结构 在若干天之前,老周给大家讲了Adaptive Toast通知的XML模板,所以相应地,今天老周给大家介绍一下Adaptive磁贴的新XML模板。

原文:【Win 10应用开发】Adaptive磁贴模板的XML文档结构

在若干天之前,老周给大家讲了Adaptive Toast通知的XML模板,所以相应地,今天老周给大家介绍一下Adaptive磁贴的新XML模板。

同样道理,你依旧可以使用8.1时候的磁贴模板,在win 10的API中也是支持的,此外,Win10 App还支持全新的自适应磁贴模板,本文老周就给大家先讲一下基本结构,下一篇文章中咱们再说一说复杂排版。

 

应用程序的图标可以分为两类:第一类是应用商店上专用的,就是你的应用提交到商店后,给用户看的图标;另一类就是应用本身的一些图标或磁贴。

磁贴其实也就这么几种,大家只需要知道这么几个尺寸就可以了。

1、44乘44,显示在所有应用程序列表中的图标,这是尺寸最小的。

2、71乘71,显示在开始屏幕上的小图标。

3、150乘150,显示在开始屏幕上的中图标。

4、310乘150,显示在开始屏幕上的宽图标。

5、310乘310,显示在开始屏幕上的大图标。

 

用于图标的图像应选用PNG格式,背景可以透明,显示出来比较晶莹清透。如果你要使用多种比例的图标,可以在放图标的目录下,比如默认的Assets目录,在目录下建两个子目

\scale-100

\scale-200

scale-xx表示缩放比例,这个会被系统自动识别,然后这两个目录下分别放对应大小的图片,图片的文件名必须相同。

 

用PS制作图标时,可以先做大尺寸的,因为图片缩小不会模糊,但放大有可能模糊。以做44X44为例,我先做200%比例的,44乘以2等于88,所以200%大小的图片为88x88。

做完200%的图片并导出为PNG文件后,再在PS中按快捷键Ctrl + Alt + I,把图像大小进行缩小,按比例缩小为50%,这样表示44x44的图像就得到了。再导出PNG就可以了。这样实际每个图标我们只做一次即可。

 

组织好的资源目录如下图所示。

 

然后在清单文件中就好办了,因为正式版的SDK已经有清单编辑器了。

对号入座即可,我就不多说了。

 

其实在实际开发中,你未必一定需要所有尺寸的图标,我这里是为了演示各个大小版本的磁贴,所以才弄齐全了。

接下来我们开始了解自适应磁贴了,都说是磁贴了,自然它的根节点是tile了(所以Toast通知的根节点是toast)。

<tile>
   ……
</tile>


磁贴是展示文本和图像给用户看的,当然是可视化的元素了,所以tile下面是visual元素。

<tile>
  <visual>
    
  </visual>
</tile>


我们也知道,磁贴有N种大小的,而每一种大小对应不同的视图,每一种视图用一个binding元素来包装,比如我这个例子,它支持所有尺寸的磁贴,因而应该包含多个binding元素。

<tile>
  <visual>
    <binding template="TileSmall">
      
    </binding>
    <binding template="TileMedium">
      
    </binding>
    <binding template="TileWide">
      
    </binding>
    <binding template="TileLarge">
      
    </binding>
  </visual>
</tile>

 

binding元素的template属性,现在已统一为四个值:

TileSmall:小图标,71x71

TileMedium:中图标,150x150

TileWide:宽图标,310x150

TileLarge:大图标,310x310

模板的名字是大小写敏感的,所以在输入时,大小写不能输错。visual元素下可以有1到4个binding,你需要哪些大小的图标,就声明多少个binding。

每个binding元素下可以放text和image元素,text表示文本,image表示图像。

 

比如这样:

<tile>
  <visual>
    <binding template="TileSmall">
      <text>小图标</text>
    </binding>
    <binding template="TileMedium">
      <text>中图标</text>
    </binding>
    <binding template="TileWide">
      <text>宽图标</text>
    </binding>
    <binding template="TileLarge">
      <text>大图标</text>
    </binding>
  </visual>
</tile>


更新磁贴后如下所示。

     

 

我们还可以在里面使用图像。

<tile>
  <visual>
    <binding template="TileWide">
      <text>很好玩。</text>
      <image src="ms-appx:///Assets/Images/2.png" />
    </binding>
  </visual>
</tile>

image元素的src属性指定图像的来源,可以是ms-appx:(安装目录内)、ms-appdata:(本地数据目录),或者网络上的图像都行。

磁贴更新后如下。

 

把image元素的placement属性设置为background,可以让图片作为磁贴的背景。

<tile>
  <visual>
    <binding template="TileWide">
      <image src="ms-appx:///Assets/Images/bg1.png" placement="background" />
      <text>看看背景图。</text>
    </binding>
  </visual>
</tile>

更新后的磁贴如下图。

 

如果文本的内容太长,你还可以考虑让它自动换行。例如:

<tile>
  <visual>
    <binding template="TileLarge">
      <text hint-wrap="true">看看,前面山坡上坐着个傻二愣,张开他那垃圾铲一样的大嘴巴,也没有人知道他在嚷什么。说的也不知道是哪个星球的语言。其声音就像老驴拉石磨似的。</text>
    </binding>
  </visual>
</tile>

hint-wrap属性是布尔值,如果自动换行,则为true,否则为false。更新后的磁贴如下图所示。

 

你还能够设置文本的对齐方式,有效的对齐方式为左、中、右。

<tile>
  <visual>
    <binding template="TileWide">
      <text hint-align="left">左对齐</text>
      <text hint-align="center">居中对齐</text>
      <text hint-align="right">右对齐</text>
    </binding>
  </visual>
</tile>

hint-align属性设置文本的水平对齐方式,有效值为:

left——左对齐。

center——居中对齐

right——右对齐

磁贴更新后如下图所示。

 

text元素不能设置文本的垂直对齐方式,只能通过binding元素的hint-textStacking属性来设置,有效的取值为;

top——顶部对齐

center——居中对齐

bottom——底部对齐

比如下面例子,文本对齐到磁贴的顶部。

<tile>
  <visual>
    <binding template="TileMedium" hint-textStacking="top">
      <text>文本对齐到顶部</text>
    </binding>
  </visual>
</tile>

磁贴更新后如下图所示。

 

如果你喜欢圆形图像,你还可以选择把图像裁剪为圆形。看看下面的例子:

<tile>
  <visual>
    <binding template="TileLarge">
      <image src="ms-appx:///Assets/Images/7.png" hint-crop="circle" />
    </binding>
  </visual>
</tile>

hint-crop默认为none,即不裁剪,所以如果不想裁剪图像就不用加这个属性,如果要剪为圆形,就设置为circle。

磁贴更新后得到的结果如下图所示。

看到没,狄大人和元芳一起去手机店买手机。

 

好的,今天给大家展示了自适应磁贴的几个新特性,下一篇文章就介绍一下如何在磁贴进行分列布局。

本文示例源码下载:http://files.cnblogs.com/files/tcjiaan/AdaptiveTileDemoApp.zip

 

目录
相关文章
|
7月前
|
XML 存储 JavaScript
DOM 节点遍历:掌握遍历 XML文档结构和内容的技巧
**XML DOM 遍历、操作和导航概述** - 遍历XML节点树用于提取信息,例如,通过JavaScript的DOM API循环`&lt;book&gt;`子节点显示名称和值。 - DOM解析器处理XML文本数据,包括解析字符数据(PCDATA)和识别CDATA段。 - 节点导航涉及`parentNode`、`childNodes`等属性,`get_nextSibling`等辅助函数避免空文本节点。 - `getElementsByTagName`、`getAttribute`和`nodeValue`用于检索元素、属性值和文本。
100 6
DOM 节点遍历:掌握遍历 XML文档结构和内容的技巧
|
5月前
|
XML Ubuntu Linux
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
|
4月前
|
XML 数据采集 存储
使用Java和XPath在XML文档中精准定位数据
在数据驱动的时代,从复杂结构中精确提取信息至关重要。XML被广泛用于数据存储与传输,而XPath则能高效地在这些文档中导航和提取数据。本文深入探讨如何使用Java和XPath精准定位XML文档中的数据,并通过小红书的实际案例进行分析。首先介绍了XML及其挑战,接着阐述了XPath的优势。然后,提出从大型XML文档中自动提取特定产品信息的需求,并通过代理IP技术、设置Cookie和User-Agent以及多线程技术来解决实际网络环境下的数据抓取问题。最后,提供了一个Java示例代码,演示如何集成这些技术以高效地从XML源中抓取数据。
182 7
使用Java和XPath在XML文档中精准定位数据
|
7月前
|
XML 存储 C#
C# xml文档反序列化记事
本文介绍了使用XmlSerializer进行XML序列化和反序列化的关键点。包括:1) 以独占方式读取XML文件以避免并发问题;2) 当元素名与类型名不一致时,可通过`[XmlArrayItem]`指定元素名,或创建继承自原始类型的子类;3) 处理DateTime反序列化错误,通过中间字符串属性转换;4) 提到了常用C#特性如`[XmlRoot]`, `[XmlElement]`, `[XmlAttribute]`, `[XmlIgnore]`和`[XmlArrayItem]`的作用。
|
7月前
|
XML JavaScript 前端开发
XML文档节点导航与选择指南
XPath是XSLT的核心部分,用于XML文档的节点定位和选择。它采用路径表达式语法,包含200多个内置函数处理各种数据类型。XPath在编程语言如JavaScript中广泛使用,与XSLT配合进行XML转换和样式处理。它涉及7种节点类型,如元素、属性和文本,以及多种节点间关系,如父、子、同级等。XPath还使用轴(如ancestor、child)来描述节点间的关联,并支持运算符进行逻辑和数学操作。
99 0
XML文档节点导航与选择指南
|
7月前
|
XML JavaScript 数据格式
XML Schema(XSD)详解:定义 XML 文档结构合法性的完整指南
XML Schema(XSD)是用于定义XML文档结构的规范,它描述了元素、属性及其顺序、数据类型和约束。与DTD相比,XML Schema支持更多数据类型,如字符串、日期等,并且是基于XML的,允许扩展和重用。学习XML Schema有助于确保数据通信时双方对内容的理解一致,通过验证防止错误。示例展示了如何定义一个`note`元素,包含`to`, `from`, `heading`和`body`子元素,都是字符串类型。XML文档可以通过引用XML Schema进行验证,确保内容符合预设模式。
584 0
|
7月前
|
XML 存储 数据格式
探索 DTD 在 XML 中的作用及解析:深入理解文档类型定义
DTD(文档类型定义)用于定义XML文档的结构和合法元素、属性。它允许不同团体就数据交换标准达成一致,并用于验证XML数据的有效性。DTD可通过内部声明(在XML文档内)或外部声明(在单独文件中)来定义。内部声明示例显示了如何定义`note`元素及其子元素的结构,而外部声明则引用外部DTD文件。元素、属性、实体和PCDATA/CDATA是XML构建模块。DTD中,元素通过ELEMENT声明定义,属性通过ATTLIST声明定义,实体声明提供特殊字符或外部资源的快捷方式。
128 0
|
Java
application.properties模板+application.yml模板+pom模板+mapper.xml模板(springboot)
application.properties模板+application.yml模板+pom模板+mapper.xml模板(springboot)
82 0
|
XML JSON JavaScript
36jqGrid 数据结构 - XML结构
36jqGrid 数据结构 - XML结构
41 0
|
XML JavaScript 数据格式
使用Dom4J解析XML文档
XML解析的方式 XML常见的两种解析方式: DOM: 要求解析器将整个XML文件全部加载到内存中,生成一个Document对象 优点:元素和元素之间保留结构、关系,可以针对元素进行增删查改操作 缺点:如果XML文件过大,可能会导致内存溢出 SAX:是一种速度更快,更加高效的解析方式。它是逐行扫描,边扫描边解析,并且以事件驱动的方式来进行具体的解析,每解析一行都会触发一个事件 优点: 不会出现内存溢出的问题,可以处理大文件 缺点:只能读,不能写 概念辨析: 解析器就是根据不同的解析方式提供具体的实现。 为了方便开发人员来解析XML,有一些方便操作的类库。例如Dom4j其中就包含了很多解
121 0