Windows Phone 8 比較 windows phone 7 來說有很多功能及效能上的提升例如支援多核 CUP、支援SD卡、多種解析度、 顯然WP7 WVGA - 480x800 的已經不能完全滿足所使用者的需求,很多使用者喜歡大螢幕高分辨的手機,隨著大屏手機的逐漸推出 WP8 也是支援大解析度的螢幕【WXGA - 768x1280 和 720P - 720x1280】
之前跟大家提起過關於應用設配WP8多種解析度的事情,但是可能還是有些同學不是很明白如何判斷當前手機的解析度以及如何讓應用自適應當前的手機解析度 今天我給大家詳細的介紹一下。
Windows phone 8 支援的螢幕解析度有三種如下:
其中我們可以清楚的看到 WVGA 和 WXGA的螢幕橫寬比例都是 15:9 的,只有在720P 的情況下是 16:9 的這點要提醒大家有些應用或許就要對720P的情況進行特殊處理下 例如一些圖片或者視頻類的應用。
另外相信很多同學想實現全屏或者更改系統時間電量表徵圖顏色 請使用 SystemTray 進行設定:
void MainPage_Loaded(object sender, RoutedEventArgs e) { ProgressIndicator progress = new ProgressIndicator { IsVisible = true, IsIndeterminate = true, Text = "Downloading details..." }; SystemTray.SetProgressIndicator(this, progress); SystemTray.BackgroundColor = System.Windows.Media.Colors.Red; SystemTray.ForegroundColor = System.Windows.Media.Colors.Blue; //SystemTray.IsVisible = false; }
通過上面的方法就可以隱藏狀態條 或 根據應用的樣式來調整 Tray的樣式,個人感覺比較實用在這裡給大家介紹一下。
當然今天的重點還是多解析度的支援 以下是實現一個 ResolutionHeper class 判斷當前螢幕解析度的方法:
public enum Resolutions { WVGA, WXGA, HD720p };public static class ResolutionHelper{ private static bool IsWvga { get { return App.Current.Host.Content.ScaleFactor == 100; } } private static bool IsWxga { get { return App.Current.Host.Content.ScaleFactor == 160; } } private static bool Is720p { get { return App.Current.Host.Content.ScaleFactor == 150; } } public static Resolutions CurrentResolution { get { if (IsWvga) return Resolutions.WVGA; else if (IsWxga) return Resolutions.WXGA; else if (Is720p) return Resolutions.HD720p; else throw new InvalidOperationException("Unknown resolution"); } }}
上面這段代碼是使用 System.Windows.Interop 中的
public int ScaleFactor { get; }
The scale factor for the current application content area.
通過螢幕比例來判斷螢幕解析度。
另外在不同解析度的手機上需要使用相應的SplashScreenImage.jpg檔案來完美適應螢幕的大小,否則系統將會自動縮放。
請參考MSDN:http://msdn.microsoft.com/en-us/library/windows/apps/ff769511(v=vs.105).aspx
另外XAML控制項 需要自適應不同解析度的手機 在設定控制項的寬高時不使用絕對高度和寬度 使用自動“*”和“Auto” 以及 “80*” 這樣的比例值來進行設定。
MSDN有一個DEMO CODE做的比較清楚感興趣的同學可以拷貝下來自己試試很有意思:http://msdn.microsoft.com/en-us/library/windows/apps/jj206974(v=vs.105).aspx
以上就是擷取和設定WP手機布局的一些技巧,歡迎大家在這裡和我溝通交流或者在新浪微博上 @王博_Nick