久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Android文字顯示效果研究

 android之情殤 2013-04-15

Android文字顯示效果研究

背景知識(shí):

TTF字體:

TrueType Font ,Apple和微軟公司合作推出的文字文件格式,,一個(gè)TTF字符由大量多邊形組成,,每一個(gè)多邊形由一個(gè)名叫TTPOLYGONHEADER的數(shù)據(jù)結(jié)構(gòu)開(kāi)始,,跟在TTPOLYGONHEADER后面的是一系列的TTPOLYCURVE數(shù)據(jù)結(jié)構(gòu)體,。多邊形的頂點(diǎn)是POINTFX類型的數(shù)據(jù)結(jié)構(gòu)點(diǎn)。

字體是如何保證對(duì)齊的呢,?原來(lái)在字庫(kù)內(nèi)部,,有一個(gè)基準(zhǔn)線,就好像信紙的虛線,,用來(lái)水平方向?qū)R的,,同樣,也有個(gè)垂直方向的基準(zhǔn)線,。每個(gè)字都有上浮和下沉的高度,,這也是該字的最上和最下的點(diǎn)所處的位置。

矢量字在不同字號(hào)下,,根據(jù)點(diǎn)陣尺寸,,顯示的精細(xì)程度也不一樣。我們這里將“8”放大了看,,在小字號(hào)和大字號(hào)下的效果,。

在不同的字號(hào)下,根據(jù)最簡(jiǎn)單的縮放原理,將所有的點(diǎn)縮放到合適的位置,,再確定曲線,。這時(shí)候,一條邊就占據(jù)不了整列像素,,或者一條邊壓在了兩列像素的中間,,這樣就造成了灰色的線條。而這并不是我們想要的效果,,Photoshop通過(guò)USM銳化濾鏡,將虛邊得以逐步清晰,,以達(dá)到所要的矢量字,。

蘋(píng)果系統(tǒng)通過(guò)調(diào)整整體點(diǎn)陣的位置,將所有的點(diǎn)適當(dāng)偏移半個(gè)像素以內(nèi)的位置,,可以實(shí)現(xiàn)較為清晰的字體,。如果在關(guān)閉了消除鋸齒方式,則有些邊線由于占據(jù)不了半個(gè)像素,,而不能夠顯示,,這就形成了所謂的缺邊或者缺筆劃。

有些軟件,,比如AdobeAcrobat,,通過(guò)一種較為復(fù)雜算法,以實(shí)現(xiàn)矢量字的清晰,。將某些關(guān)聯(lián)的點(diǎn)作為一個(gè)segment,,并且局部偏移到鄰近的整數(shù)位,而其他部分不動(dòng),。這種方法目前較為流行,,可以實(shí)現(xiàn)比蘋(píng)果和ps還要清晰的矢量效果。

為什么我們通??吹降凝X條文字這么清晰呢

微軟的TTF為了保證小字號(hào)下的清晰,,可謂是用盡了方法。首先,,在龐大的字庫(kù),,內(nèi)置了數(shù)個(gè)字號(hào)的點(diǎn)陣字,接著才是矢量字,。比如宋體,,內(nèi)置了12、14,、16,、18等幾個(gè)點(diǎn)陣字庫(kù),在這些之外才使用矢量字庫(kù)來(lái)渲染。這也是為什么一個(gè)TTF文件要幾兆甚至幾十兆的容量,,不過(guò)內(nèi)嵌的點(diǎn)陣字越多,,在不同字號(hào)下實(shí)現(xiàn)的效果自然越好。別小看了這些點(diǎn)陣字,,每一個(gè)都是平面設(shè)計(jì)師在工具上畫(huà)的,,并非由軟件生成。唉,,可憐的設(shè)計(jì)師啊~~~~~~

(ps:Android自帶字庫(kù)最大就5M,,是矢量字庫(kù))。

不過(guò),,有個(gè)特例,。比如Arial字體,內(nèi)部全是矢量字,,但各種尺寸下都是這么清晰,。為什么呢?

原來(lái),,微軟在字庫(kù)中加入了解釋程序,,interpreter,一種專門(mén)用于字庫(kù)渲染的腳本命令,。在不同的字號(hào)下,,都有相應(yīng)的語(yǔ)句,將矢量字得以最清晰化,。這是一種更復(fù)雜的技術(shù),,微軟也覺(jué)得不能廣泛使用,所以只有在部分的英文字庫(kù)中才有,,而且該腳本對(duì)應(yīng)每個(gè)字都有一段代碼,,容量非常大,用在漢字上幾乎是不可能,,除非是整個(gè)文字不多于100個(gè)才能使用,。

interpreter就是這么神奇,他也是目前最好的技術(shù)之一,,能夠?qū)⑹噶孔咒秩镜暮忘c(diǎn)陣字一樣的清晰,。他將某些邊線的距離拉開(kāi),而將另一部分收縮,,總之是按照人的想法來(lái)做的,,這也是編好的程序。

矢量字體的終極技術(shù)

在1998年的時(shí)候,,微軟聲稱發(fā)明了一種新的技術(shù),,能在LCD上將矢量字體的清晰度提高到300%,。而后,出現(xiàn)了名為Microsoft Reader的軟件,。Adobe也不甘示弱,,隨即在Acrobat 4中對(duì)CoolType進(jìn)行了支持,而Linux的FreeType庫(kù)也開(kāi)始支持次像素平滑,。從實(shí)際效果來(lái)看,,Acrobat做的最好,最靈活,,而微軟的缺少適當(dāng)?shù)恼{(diào)節(jié)工具,,Linux的次像素平滑簡(jiǎn)直就是垃圾,照虎畫(huà)貓,。(ps:所以Ubuntu的中文會(huì)顯示的那么別扭,,android基于linux但Google進(jìn)行了優(yōu)化,文字顯示效果得到質(zhì)的提升),。

ClearType使用彩色來(lái)描邊,顯示對(duì)比度越是強(qiáng)的文字,,比如白底黑字或者黑底白字,,都是最清晰的。其實(shí),,理論上ClearType能夠?qū)@示精度提到到300%,,但實(shí)際上只能達(dá)到200%左右。

一般來(lái)說(shuō),,液晶顯示器的點(diǎn)陣分布都非常均勻,,每個(gè)點(diǎn)都是由紅綠藍(lán)3色排列而成。我們通常要顯示一個(gè)白色,,需要將紅綠藍(lán)都點(diǎn)亮,,而黑色是都不顯示。ClearType將點(diǎn)的概念再次擴(kuò)展,,把鄰近的兩個(gè)點(diǎn)3色混淆,,借前一個(gè)點(diǎn)的顏色而忽略后一點(diǎn)的某種顏色。這樣,,就可以把傳統(tǒng)的一個(gè)點(diǎn)的最小單位擴(kuò)展到1/3個(gè)點(diǎn)的單位,。

在使用ClearType技術(shù)后,原來(lái)的字體渲染將更加清晰,,當(dāng)然,,只限于LCD顯示器,CRT會(huì)更加模糊,。ClearType還有一個(gè)關(guān)鍵的技術(shù),,就是Linux的次像素平滑沒(méi)有學(xué)去的地方,,一定要考慮到紅綠藍(lán)的顏色亮度平衡。一般來(lái)說(shuō),,綠色的亮度最高,,而藍(lán)色的最低,所以我們要在顯示綠色的時(shí)候加點(diǎn)紅色和藍(lán)色來(lái)調(diào)低亮度,,而顯示藍(lán)色的時(shí)候要加入綠色和紅色來(lái)增加亮度,。這種做法也可以使邊界的彩邊不是那么明顯,看起來(lái)更像是黑色的字,。不過(guò),,這種做法使得原本可以提高顯示精細(xì)程度到300%的技術(shù),降低了許多,,不過(guò)還是要高于200%,。

以上資料得出結(jié)論:

1.字體顯示不是越大越清晰,當(dāng)字體像素與設(shè)備物理像素是點(diǎn)對(duì)點(diǎn)(或者1比N,,N為整數(shù)時(shí)最清晰),。

2.在一些圖形處理軟件中比如Photoshop,文字都會(huì)經(jīng)過(guò)算法優(yōu)化,,視覺(jué)上會(huì)比手機(jī)上更清晰,,耐看一點(diǎn)。這個(gè)差異性是客觀存在的,。

3.手機(jī)和電腦屏幕的物理像素大小和發(fā)光排列原理都不盡相同,,所以呈現(xiàn)的細(xì)節(jié)特點(diǎn),色彩的表現(xiàn)力和沖擊力都不一樣,,最終效果還是要以特定設(shè)備為準(zhǔn),。

延伸篇:

為了提升文字顯示效果的視覺(jué)感染力。人們?cè)O(shè)計(jì)了各種字體,,并加入無(wú)數(shù)的藝術(shù)效果,。在android系統(tǒng)中TextView組件封裝了文字的顯示和操作。雖然不能像專業(yè)軟件那樣對(duì)文字進(jìn)行所有操作,,但只要我們合理的使用里面的陰影效果api,,也能大大提升文字在手機(jī)中顯示效果,以下我會(huì)用一個(gè)demo簡(jiǎn)單說(shuō)明不同的陰影帶來(lái)完全兩樣的顯示效果,。權(quán)當(dāng)是拋磚引玉了,。

1.讓文字顯示更清晰


可以看到加了一個(gè)像素的投影后文字顯得很清晰,也更有質(zhì)感,。

2.增加文字的視覺(jué)立體感,。

凹感:

凸感:

3.讓陰影看起來(lái)是倒影增加屏幕顯示的通透性。


win7桌面圖標(biāo)和android4.0桌面圖標(biāo)都加了Y軸2個(gè)像素的投影增加圖標(biāo)的感染力和視覺(jué)舒適度,,也一定程度上讓屏幕看起來(lái)更清晰透徹,。

結(jié)論:1.合理使用陰影能大大提升文字顯示的效果

         2.文字陰影軟件實(shí)現(xiàn),,圖標(biāo)投影請(qǐng)UI設(shè)計(jì)時(shí)直接在資源文件上畫(huà)好。

其實(shí)android實(shí)現(xiàn)文字陰影很簡(jiǎn)單,,比如我們要實(shí)現(xiàn)以下文本效果:

a.我們可以在布局XML文件里面對(duì)TextView組件直接用屬性標(biāo)簽定義:

  1. android:shadowColor="#B0000000"  
  2. android:shadowRadius="3.0"  
  3. android:shadowDx="3.0"  
  4. android:shadowDy="3.0"  

b.也可以在源代碼里面調(diào)用TextView實(shí)例方法進(jìn)行設(shè)置:

  1. mTextView = (TextView)findViewById(R.id.serif4);  
  2. mTextView.setShadowLayer(33.0f, 3.0f, Color.BLACK);  

Attribute Name

Related Method

Description

android:shadowColor

setShadowLayer(float,float,float,int)

定義陰影的顏色

android:shadowDx

setShadowLayer(float,float,float,int)

陰影在水平方向的位移

android:shadowDy

setShadowLayer(float,float,float,int)

陰影在豎直方向的位移. . 

android:shadowRadius

setShadowLayer(float,float,float,int)

陰影的半徑

兩者使用都很簡(jiǎn)單,,可以根據(jù)實(shí)際情況選擇一種去實(shí)現(xiàn),也可以兩種混合著用,。一般視圖型組件的在xml里面定義,,功能型組件可在代碼中實(shí)現(xiàn)會(huì)比較方便。

Tips:定義文字陰影的4個(gè)參數(shù)都需要UI設(shè)計(jì)稿中提供,。數(shù)值不合理會(huì)讓文字顯示的更模糊難看,,過(guò)猶不及請(qǐng)務(wù)必注意。

或許這個(gè)你也可以看一下》》Android 圖片資源顯示效果研究《《,。見(jiàn) http://www./Linux/2012-07/64349.htm

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多