Windows Phone 8中支持三种分辨率,下表中描述相应分辨率以及与OS 7.1分辨率的缩放关系
如何布局以适应不同分辨率
Windows Phone 7中只支持一种分辨率,所以很多程序布局文件中坐标、大小等值都是hard-code的,在Windows Phone8中可以利用*和Auto来布局(即按比例分割屏幕)例如7.1中如下代码:
现在程序在WVGA和WXGA中布局是动态的。输出框在WVGA和WXGA是相同的,因为它的Height属性设置为Auto,button把剩余的空间填满。在720p上,button会比WVGA和WXGA上要高一些。
为不同分辨率设备准备不同的背景和asset
利用binding函数,运行时根据屏幕分辨率动态加载背景图片。
步骤如下:
1. 创建一个c# application工程--MyMultiBg
2. 准备三张图片,分别为MyImage.screen-wvga.jpg, MyImage.screen-wxga.jpg, and MyImage.screen-720p.jpg,放到Assets目录下,设置Copy to Output Directory 属性为copy always.
3. 工程添加ResolutionHelper.cs,代码如下:
4. 工程添加MultiResImageChooser.cs,代码如下:
Splash screens,即应用程序启动过程中显示图片
Windows Phone 8中已经将默认的480*800的SplashScreenImage.jpg替换为768*1280。如果不提供其他尺寸的图片,程序启动时候会根据手机分辨率对SplashScreenImage.jpg缩放。
另外,我们也可以为每种分辨率提供一个splash screen图片,
为每种分辨率提供不同的splash screen不像设置背景和asset那么复杂,把以下文件添加工程中就可以:
SplashScreenImage.Screen-WVGA.jpg
SplashScreenImage.Screen-WXGA.jpg
SplashScreenImage.Screen-720p.jpg
除了这些文件以外,工程中必须要包含SplashScreenImage.jpg文件。
Tile和应用程序图标
Tile和应用程序图标只需要提供WXGA分辨率的,框架将自动为WVGA/720p缩放。
下表为WXGA中Tile的尺寸