目前市面上的windows phone裝置越來越多,尺寸和解析度也越來越多,特別是wp8.1時代的到來。做過wp開發的人都知道應用適配其實較安卓要簡單太多了,其中有乙個重要原因,就是微軟號稱所有wp裝置都將以2個基準解析度來發展,即800 : 480和853 : 480。wp8+的應用適配相對來說比較簡單,主要讓螢幕布局適配這兩種比例足矣,想必對wvga、wxga和720p三種解析度及對應的模擬器都有一定了解。
我們先了解一下以下的概念,並將細說它們之間的關係和換算方法。
表示視窗大小或檢視大小。wp8.1和win8.1一樣,採用視窗的概念來代表當前應用的窗體。請見windows.ui.xaml.window
我們通過window.bounds來獲取當前視窗的大小:
// window size表示當前裝置每邏輯畫素所包含的畫素數量。請見windows.graphics.display.displayinformation.logicaldpivar bounds = window.current.bounds;
windowsize.text = string.format("h x w ", bounds.height, bounds.width);
// logical dpi表示每個可視畫素對應的實際畫素個數,這是wp8.1獨有得到屬性,win8.1使用resolutionscale來表達。請見windows.graphics.display.displayinformation.rawpixelsperviewpixelvar logicaldpi = displayinformation.getforcurrentview().logicaldpi;
logicaldpi.text = logicaldpi.tostring();
// rawpixelsperviewpixelvar dpiratio = displayinformation.getforcurrentview().rawpixelsperviewpixel;
rawpixelsperviewpixel.text = dpiratio.tostring();
// scalefactor表示螢幕解析度,即實際解析度。通過[window.bounds.width] * [rawpixelsperviewpixel]和[window.bounds.height] * [rawpixelsperviewpixel]來計算:var scalefactor = bounds.width * dpiratio /480;
scalefactor.text = scalefactor.tostring();
// screenresolution表示邏輯解析度,即基準解析度。通過[screen resolution] / [scale factor]來計算:var resolutionh = math.round(bounds.height*dpiratio);
var resolutionw = math.round(bounds.width*dpiratio);
screenresolution.text = string.format(" x ", resolutionh, resolutionw);
// logicalresolution表示螢幕x軸或y軸方向上每英吋的實際點數,這個值和實際的螢幕裝置密不可分,分別有rawdpix和rawdpiy兩個值:logicalresolution.text = string.format(" x ", resolutionh/scalefactor, resolutionw/scalefactor);
// rawdpi表示螢幕尺寸,即實際螢幕對角線的長度,單位英吋。通過上面幾個數值,完全能夠算出當前使用裝置的螢幕尺寸。通過[screen resolution] / [raw dpi]兩個方向上的歐氏距離來計算:var rawdpix = displayinformation.getforcurrentview().rawdpix;
var rawdpiy = displayinformation.getforcurrentview().rawdpiy;
rawdpi.text = string.format("rawdpix:, rawdpiy:", rawdpix, rawdpiy);
// screeninch擼主分別在三個模擬器上做了實驗,即8.1 wvga 4 inch 512m、8.1 720p 4.7 inch 和 8.1 1080p 5.5 inch,這三個模擬器是我們wp8.1上用得最多的模擬器。單從模擬器的標題我們就能得出一些資訊:var screeninch = math.sqrt(math.pow(resolutionh / rawdpiy, 2) + math.pow(resolutionw / rawdpix, 2));
screeninch.text = string.format(" inches", screeninch.tostring());
wvga 4 inch:螢幕尺寸4英吋,wvga解析度800x480,邏輯和實際解析度都是這個值;
720p 4.7 inch:螢幕尺寸4.7英吋,720p解析度1280x720,基準解析度為853x480;
1080p 5.5 inch:螢幕尺寸5.5英吋,1080p解析度1920x1080,基準解析度為853x480。
下面分別是這三種模擬器的結果:
特別注意螢幕解析度、邏輯解析度和螢幕尺寸,和我們預想的結果完全吻合。
介紹了wp8.1螢幕尺寸和解析度相關的概念及轉換方法;有了這些基礎資訊,就可以獲得螢幕上任意元素的實際尺寸或是邏輯尺寸了。
WP8 1 關於螢幕尺寸和解析度的那些事兒
目前市面上的windows phone裝置越來越多,尺寸和解析度也越來越多,特別是wp8.1時代的到來。做過wp開發的人都知道應用適配其實較安卓要簡單太多了,其中有乙個重要原因,就是微軟號稱所有wp裝置都將以2個基準解析度來發展,即800 480和853 480。wp8 的應用適配相對來說比較簡單,...
螢幕尺寸 解析度
1 解析度 解析度又稱顯示解析度 螢幕解析度 確定手機螢幕上顯示多少資訊的設定,以水平和垂直畫素來衡量 6 750 1334 畫素 5s 640 1136 畫素 2 螢幕尺寸 螢幕大小的物理尺寸,以螢幕對角線長度衡量 單位 英吋 1英吋 2.54厘公尺 6 4.7英吋 5s 4英吋 3 畫素密度 p...
螢幕尺寸 解析度 縮放
我的顯示器aoc品牌,1920 1080 解析度 螢幕尺寸一般講英吋,指螢幕對角線的長度,21英吋。螢幕就是這個玻璃面板,物理上排列著許許多多的映象管,每個映象管可以看成乙個最小成像單位 px。橫向的畫素數 豎向的畫素數 即解析度,但是衡量顯示細膩程度的是 ppi 即單位面積上的畫素數。瀏覽器縮放的...