1

我想知道在 windows phone 7 中开发应用程序时处理不同屏幕分辨率的最佳方法是什么。

因为我以 480 x 800 像素开发所有应用程序,而且我知道并非所有移动设备都支持 480 x 800 像素分辨率。

如果我在 xaml 中对宽度、高度、边距等进行硬编码,那么当手机不支持 480x800 分辨率时就会出现问题。

那么在单个应用程序中管理所有分辨率的最佳方法是什么?就像在 android 中有不同的文件夹用于不同的分辨率(Hdpi,Ldpi)。

帮我

4

2 回答 2

3

请阅读我之前关于该主题的回答: Wen of WP8 Multi-resolution support , APIs for WP8 mutli-resolution , DevCenter multiple XAP support , and WP7 & WP8 co-development guide

具体看一下运行时适配下的WP7 & WP8共同开发指南。有这个代码片段:

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"));

另请查看具有以下三个互斥代码片段的 WP8 多分辨率 API :

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"));
于 2012-12-26T05:10:36.037 回答
0

在 wp8 中开发应用程序时,我得到了处理不同屏幕分辨率的解决方案。

JustinAngel anser 也是正确的,但它有些复杂,因为它包含大量需要维护的代码,而且有些困难。

因此,请使用 Telerik RedControls。无需维护代码隐藏,并且根据分辨率加载不同图像的简单直接方法。

请参考此链接

Windows Phone 8 中的多分辨率支持变得简单

希望这对所有 wp8 开发人员都有帮助。

于 2012-12-28T05:15:44.500 回答