我想知道在Windows Phone 7中开发应用程序时处理不同屏幕分辨率的最佳方法是什么。
因为我开发了480 x 800像素的所有应用程序,因为我知道并非所有移动设备都支持480 x 800像素分辨率。
如果我对xaml中的宽度,高度,边距等进行硬编码,那么当手机不支持480x800分辨率时会产生问题。
那么在单个应用程序中管理所有resolutin的最佳方法是什么?像在Android中有不同的文件夹不同的分辨率(Hdpi,Ldpi)。
帮帮我
答案 0 :(得分:3)
请阅读我之前对该主题的回答:Zen of WP8 Multi-resolution support,APIs for WP8 mutli-resolution,DevCenter multiple XAP support和WP7 & WP8 co-development guide。
具体来看看WP7 & WP8 co-development guide under Runtime adaption。这有代码片段:
public Uri GetScaledImageUri(String imageName)
{
int scaleFactor = (int)Application.Current.Host.Content.ScaleFactor;
switch (scaleFactor)
{
case 100: return new Uri(imageName + "_wvga.png", UriKind.RelativeOrAbsolute);
case 150: return new Uri(imageName + "_720p.png", UriKind.RelativeOrAbsolute);
case 160: return new Uri(imageName + "_wxga.png", UriKind.RelativeOrAbsolute);
default: throw new InvalidOperationException("Unknown resolution type");
}
}
// Next line will load a correct image depending on the resolution of the device
MyImage.Source = new BitmapImage(GetScaledImageUri("myImage"));
另请查看具有以下三个互斥代码段的APIs for WP8 mutli-resolution:
Image myImage = new Image();
if (MultiRes.Is720p)
myImage.Source = new BitmapImage(new Uri("puppies.720p.jpg"));
else if (MultiRes.IsWvga)
myImage.Source = new BitmapImage(new Uri("puppies.wvga.jpg"));
else if (MultiRes.IsWxga)
myImage.Source = new BitmapImage(new Uri("puppies.wxga.jpg"));
if (MultiRes.Is720p)
myImage.Source = new BitmapImage(new Uri(@"assets\16by9AspectRatio\puppies.jpg"));
else
myImage.Source = new BitmapImage(new Uri(@"assets\15by9AspectRatio\puppies.jpg"));
if (MultiRes.IsHighResolution)
myImage.Source = new BitmapImage(new Uri(@"assets\HD\puppies.jpg"));
else
myImage.Source = new BitmapImage(new Uri(@"assets\SD\puppies.jpg"));
答案 1 :(得分:0)
我在wp8中开发应用程序时获得了处理不同屏幕分辨率的解决方案。
JustinAngel anser也是对的,但它有些令人反感,因为它包含了许多需要维护的代码,而且还有一些难以实现的代码。
因此使用Telerik RedControls.No代码隐藏是必要的维护和根据分辨率加载不同图像的简单直接方式。
请提供此链接
Multi-Resolution support in Windows Phone 8 Made Easy
希望这对所有wp8开发者都有帮助。