高分辨率下文字字體、圖像、界面布局的解決方案
為什么要保證我們的軟件產(chǎn)品或應(yīng)用程序中的文本、圖像和字體、布局等問(wèn)題呢,因?yàn)槲覀冇脩?hù)的終端顯示設(shè)備通常型號(hào)和設(shè)置各異,如最近出現(xiàn)的16×9,低于8”的等最新款式移動(dòng)手提電腦,我們的應(yīng)用程序和軟件產(chǎn)品通常會(huì)在這樣的終端變得面目全非,而這顯然給用戶(hù)的使用帶來(lái)了嚴(yán)重的問(wèn)題,直接導(dǎo)致的問(wèn)題如:操作易用性Usability、功能可接近性Accessibility、文本可讀性Readability 等,而這樣的問(wèn)題并非不可逾越,要解決如何讓我們的應(yīng)用程序在高分辨率的顯示下仍然保持正?梢,重點(diǎn)需要解決四個(gè)方面的問(wèn)題文本和字體、圖像(圖形、圖標(biāo)和鼠標(biāo)指針)、版面設(shè)置和重繪等。
前言
所有的應(yīng)用程序都可以工作在高分辨率下顯示嗎?答案當(dāng)然是否定的,F(xiàn)在比較標(biāo)準(zhǔn)的計(jì)算機(jī)顯示器都已經(jīng)可以支持顯示大概96像素點(diǎn)/英寸的分辨率了,而且越來(lái)越多的應(yīng)用程序都可以運(yùn)行在這種分辨率下,但是卻仍然面臨分辨率日益增長(zhǎng)的帶來(lái)的危險(xiǎn),F(xiàn)在,我們可以輕松的買(mǎi)到一臺(tái)133-DPI顯示分辨率的筆記本電腦,甚至還有170DPI的,也許幾年以后200-DPI的顯示分辨率已經(jīng)隨處可見(jiàn)了,著名的工業(yè)雜志DisplaySearch曾經(jīng)預(yù)言在2002年底有40%的膝上電腦已經(jīng)超過(guò)100-DPI的屏幕分辨率了,而且這個(gè)數(shù)字還在增長(zhǎng)。
例圖 1.各種常見(jiàn)分辨率下字體外觀
現(xiàn)在大多數(shù)的應(yīng)用程序要想顯示正常都依賴(lài)于分辨率,我們有些應(yīng)用程序如果沒(méi)有高分辨率的支持將會(huì)變得非常丑陋并且導(dǎo)致用戶(hù)易用性降低,與此同時(shí)越來(lái)越多的用戶(hù)使用了大字體。但是遺憾的是當(dāng)分辨率在130-DPI和200-DPI的時(shí)候是不成比例的,在96-DPI下的同一個(gè)應(yīng)用程序在這種分辨率下會(huì)變得無(wú)法使用,有的時(shí)候這些應(yīng)用程序的字體或控件會(huì)一律變得很小,但是更多的情況是一部分界面元素的尺寸正確的(例如,應(yīng)用程序使用了缺省的字體,那么將會(huì)在這個(gè)基礎(chǔ)上比原來(lái)大一些)而另外一部分不正確,如下圖所示:
例圖2. 改變分辨率帶來(lái)的影響
由此可見(jiàn),增強(qiáng)和改善我們應(yīng)用程序在高分辨率下的顯示支持是非常有必要的,那么重要的標(biāo)準(zhǔn)應(yīng)該是:圖片看起來(lái)更好,文本也應(yīng)該看起來(lái)更清晰。比如文本在200-DPI分辨率顯示器上清晰的像激光打印機(jī)輸出的一樣(因?yàn)橛?jì)算機(jī)顯示有更多的顏色像素和灰度縮放支持,200-DPI的顯示器的質(zhì)量相當(dāng)于600-DPI的打印機(jī))所以PDA和Smartphone的廠商相對(duì)于紙介更看重高分辨率下的顯示。
開(kāi)發(fā)一個(gè)適應(yīng)多分辨率的應(yīng)用程序不是很簡(jiǎn)單,尤其對(duì)于一個(gè)已經(jīng)成形的應(yīng)用程序和系統(tǒng)來(lái)說(shuō),動(dòng)靜可能不小,但是它的好處是可以使我們不必再假設(shè)分辨率的各種情況,避免不能縮放帶來(lái)的質(zhì)量下降(比如說(shuō)位圖和位圖字體),而且開(kāi)發(fā)支持高分辨率的應(yīng)用程序有時(shí)候會(huì)覺(jué)得有些單調(diào)和乏味,但是如果我們的產(chǎn)品或應(yīng)用程序是為了服務(wù)于特定人群的(比如說(shuō)視力不好、和需要長(zhǎng)時(shí)間工作的人以及視弱人群),那么我們的工作就會(huì)變得非常有必要(在高對(duì)比度下和使用擴(kuò)展大字體的情況都和高分辨率有關(guān))。
系統(tǒng)韻律
Windows平臺(tái)本身提供了幫助解決用戶(hù)系統(tǒng)高分辨率問(wèn)題的解決途徑,我們可以通過(guò)一個(gè)小函數(shù)GetDeviceCaps()先獲得當(dāng)前的顯示分辨率,然后通過(guò)GetSystemMetrics()這個(gè)系統(tǒng)韻律函數(shù)和讀取系統(tǒng)信息和參數(shù)的SystemParametersInfo()函數(shù)提供的方法來(lái)改變windows中的圖形以及控件元素、和字體的尺寸,從一個(gè)3d的邊框效果乃至到一個(gè)小圖標(biāo)的尺寸,都可以隨心所欲的改變。
大概原理是首先利用GetDeviceDaps()這個(gè)函數(shù)獲得當(dāng)前分辨下的X、和Y軸的數(shù)值作為基準(zhǔn);然后再確定要縮放到多少。
關(guān)鍵問(wèn)題
在設(shè)計(jì)高分辨率的應(yīng)用程序過(guò)程中,我們要特別注意四個(gè)重要的方面:文本和字體、圖像(圖形、圖標(biāo)和鼠標(biāo)指針),版面設(shè)置以及重繪。
出處:UI花園
責(zé)任編輯:moby
上一頁(yè) 下一頁(yè) 高分辨率下界面布局的解決方案 [2]
|