為什麼在Windows下高解析度屏幕上第三方應用表現如此差?而在安卓、IOS等移動平台生態下卻沒有遇到這種問題?

本人現在自用Surface pro 3,屏幕解析度為2160×1440,但是結果是我不得不把解析度調整為1440×960來使用。原因我相信大家都懂的,桌面軟體不管是國內的還是國外的大部分基本全都有嚴重的顯示問題。(大家就不用來幫我數哪幾款軟體是完美顯示的了) 但是一直很疑惑,移動設備的發展很迅猛,800×480到今天的2K前後也就這幾年,為什麼在這個短短的過程中並沒有出現第三方軟體的顯示問題? 是WIN平台做解析度自適應的技術成本太高嗎?難道WIN平台下用戶就沒有高解析度需求?以後的WIN10可以解決這個問題嗎? 勿噴,本人技術外行,非軟黑,非果粉,非安卓粉,只是求解!

補充一下:是因為WIN平台適配多解析度高解析度成本過高?還是現階段大眾消費市場中高解析度屏幕份額不夠大所以需求不足?


開發者理念不同,我10年前做的程序就能再resize時縮放主體內容,或者整個窗口內容等比縮放,方法分別不過是屬性裡面改改和套個等比縮放的panel。在學習做遊戲界面的時候也做過界面上的hub可以通過窗口相對於某個閾值縮放,也就是並非等比縮放,而是如果超過一定解析度就採取非等比放大,讓高解析度用戶減少按鈕界面的佔比,而低解析度是固定比例,這些都不過是設計理念,很好實現的。然而你看看迅雷,新建下載界面根本沒法resize,跟別提我希望放大後帶下載文件列表能顯示全一點。

連web都有響應式設計來適應不同的屏幕,就看你用不用了。

當然了,windows比手機平板還是要難一些的,同樣是4k,你還得考慮他屏幕多大,同樣是5寸屏幕,你得考慮解析度,也就是dpi和ppi都得考慮,不過既然連最基本的縮放都不考慮,也就何談了。安卓手機和安卓平板不也很多app得設計兩套么。

總的來說我想說的是,你要是有這個理念,一定可以做得很好,沒有這個理念的,系統最多也就給你來個125% 150%

歷史的發展也註定只有新理念設計的app能夠做到,安卓一開始就是被迫的,ios不也是強迫開發者學習適應么,windows下不是也有uwp這種必須能適應各種解析度屏幕大小的應用么。


買了高解析度的新電腦-&>大部分應用不能看-&>用戶降低解析度-&>應用商更沒有動力去適應高解析度-&>反覆循環。

微軟一直在降低高解析度支持的開發門檻,比如UWP和WPF默認就支持,MFC是在VC2010里支持,WinForms也有第三方組件庫支持,但是要利用這些支持,需要應用商去

移植代碼或者升級類庫。至於qt這樣的第三方類庫支持高DPI的速度我就不說了。

用這些高DPI支持的類庫不是沒有代價的,比如EverNote基於WPF寫的客戶端太慢所以又把代碼移植回C++了,所以還得看用加高DPI支持的收益是否高於成本。基於一開頭提到的原因,使用高解析度的用戶在循環狀態下是少數派,所以高解析度支持在和其他用戶需求競爭的時候經常會輸掉。

另外,開發者沒有高解析度屏幕的話,就算想支持,也沒有條件去調試,而購買高解析度顯示器這個成本,在開頭那個循環導致用戶基數不夠大,收益不夠高的時候,是很難說服老闆掏腰包的。


Windows:2017年了還有人用1997年的api寫程序,,根據「兼容性至上」原則,能適應dpi才怪了,還有不少解析度都不能自選的選手呢

(你用WPF或UWP,或者比較新的WinForm,或者任意一個最近的GUI框架,甚至自己加一個查詢dpi的操作,都不會有問題好嗎)

Android:介面實際上類似WPF/WinForm/UWP這些,不存在行為跟Windows上古董介面類似的介面,當然會沒問題了

iOS:容我笑一會,iOS上沒有遇到這個問題純粹是因為解析度被定死了,不信你在iPad上運行一個iPhone程序並放大看看


因為windows不能像水果那樣每次更新都有一大坨應用出兼容性問題


你搜一下就知道了,不要反覆問。簡單的說就是:傳統桌面軟體當初都沒有考慮高解析度問題,後來軟體開發者也沒有動力/精力按照微軟的要求修改軟體來適配高解析度顯示,如果按微軟要求做了,比如微軟自己的軟體,都沒有問題的。win10也許可以部分解決這個問題,但肯定還是不能完全解決的。新的ModernUI應用一開始就沒有這個問題,時代不同了。


高票說的對啊~你在iPad上運行一個只為iPhone設計的APP試試?ε=ε=ε=┏(゜ロ゜


iOS對高解析度沒有兼容性, 封閉的iOS生態只有特定解析度才能清晰顯示


你這是在逗嗎?apple更新解析度跑軟體同樣有問題,只不過大部分app更新快適配好罷了。Mac和iPhone都是如此。當初視網膜的MBP出來的時候,根本就是一個馬賽克的世界...但是果粉都有信仰加成的,軟粉們就沒有這份思想覺悟了。


我現在5K屏開200%,老程序因為是4點對1點+解析度夠高所以不會有很顯著的問題


你非要用國產殺馬特UI的軟體那真沒辦法——實際上哪怕MacOS,某些軟體,比如Steam客戶端的商店,仍然沒做好HiDPI支持,直到今天都是如此。

這些殺馬特軟體的用戶基本上都是些老PC用戶,屏幕解析度有沒有1920X1080都是問題,開發者自然不會去做適配。事實上一部分國產軟體,比如QQ、微信、360極速,已經支持了HiDPI


https://docs.microsoft.com/zh-cn/windows/uwp/layout/design-and-ui-intro

就拿UWP舉例吧,微軟已經手把手教的這麼清楚了,文檔和開發實例也有,開發者不去用怪我咯?

windows對HiDPI有完整支持,用不用就是開發者的事了,髒水不能亂潑


你不要用傳統的桌面應用,打開APP看看是不是都適配的很好。


對於安卓,你以為的理所當然 都是代碼狗的努力。


坐等創造者更新,有效改善了高DPI下未為高分屏優化的軟體的顯示情況。


win10自帶的設備管理器、磁碟管理、計算機管理至今仍然是馬賽克,這難道也是第三方應用的鍋?

有些人不要太過分啊,事實就是windows10對高分辨的優化沒到位,他自家的東西也都沒100%做好適配!


安卓又不用 C++,api 可以隨便改


手機應用都能做到Windows有何難度,況且又不是沒有。。Win32的QQ,獵豹什麼的,同樣是第三方軟體,都有高DPI支持 還給了個選項開不開自己決定

既然說了是第三方軟體

那麼問題答案就是寫第三方軟體的人偷懶了

至於為什麼偷這個懶 對就是需求不夠高

Windows里高DPI佔大多數的時候你看他們支不支持

最後吐槽一個安卓APP。。。誰說移動平台高DPI就一定做得好了...安卓版的寶珀GT3肯定沒用過


因為Windows Forms和WPF都出了十幾年了還有一群人還在寫二十多年前的MFC程序。

MFC 1992

WinForms .NET 2.0 2005

WPF .NET 3.0 2006


ios:增加解析度=增加清晰度

win:增加解析度=增加信息量


iOS不熟悉,針對Android來講,應用是使用dp/pt/sp等,就是相對屏幕的比例而不是實際像素多少,沒有直接使用px來畫界面布局,自然可以針對不同大小的屏幕顯示不同的效果。同時Android應用一般會有很多套切圖針對不同解析度的設備。

Windows下只是用Java做過GUI,是直接px寫死在代碼里的,通用性做的高一點可能會根據屏幕解析度判斷下顯示大小,但是相比Android下,實在是太麻煩了。而且PC用戶的解析度分布沒有移動端的差異化那麼明顯,所以可能大多數開發者不會針對不同解析度單獨適配吧

~~~


推薦閱讀:

如何關閉cortana?
如何用最少的錢買台surface rt?
Windows RT 無法升級到 Windows 10,那麼微軟會放開 Windows RT 運行第三方桌面應用的許可權嗎?
surface laptop如果不聯網,電腦的資料是不是就不會外泄,?
只為了 OneNote 上課記筆記而入手 Surface Pro 3 或 Surface 3 值得嗎?

TAG:iOS | 解析度 | MicrosoftWindows | MicrosoftSurface | Android |