|
呵呵,相信各位Android開發(fā)愛好者都知道,由于OEM之間的競爭,各種Android操作系統(tǒng)的手機簡直就是琳瑯滿目,屏幕分辨率的差異可想而知。目前比較主流的有WVGA=800x480,HVGA=480x320,另外的還有QVGA=320x240。當(dāng)然還有魅族M9的DVGA=960x640,還有蛋疼的摩托羅拉的FWVGA=854x480。 那么,如何讓你的程序可以在不同分辨率的手機上“健康”的跑動呢? 其實,在你layout的xml文件中,編寫的時候是不是用了許多的padding呢?如果是,那你就蛋疼了。因為這樣的布局永遠(yuǎn)是無法適應(yīng)所有手機屏幕的。正確的做法應(yīng)該是使用weight屬性。 過程很簡單:首先,將你控件的layout中的width、height設(shè)置為fill-parent,不要使用wrap——content。因為wrap-content的大小是不固定的。而weight(權(quán)重)這個屬性很好的解決了這個問題。 當(dāng)包裹在控件外面的Layout的width、height屬性都設(shè)置為fill-parent時,可以利用weight的反比特性。即如果控件A設(shè)置weight為9,控件B設(shè)置weight為20,那么A所占的空間為20/(9+20),B所占的空間為9/(9+20)。這樣的反比屬性對任何分辨率下的手機都是合適的。 當(dāng)然,字體就不行了。那怎么保證字體能夠跟布局一樣能夠自適應(yīng)呢? 呵呵,很簡單,就是在你的res文件夾中創(chuàng)建一個文件夾,叫做values-320x240。其中320x240是你手機屏幕的分辨率,根據(jù)你手機屏幕的情況做不同的命名,例如values-800x480。在該文件夾下創(chuàng)建一個dimens.xml文件,定義各種字體的大小。那么系統(tǒng)就會自動根據(jù)你手機屏幕的分辨率去調(diào)用響應(yīng)的文件夾。 另外,值得提醒的是,記得在你默認(rèn)的values文件下的dimens.xml文件中也要寫上相應(yīng)的字體大小哦,因為當(dāng)系統(tǒng)無法認(rèn)識你手機屏幕大小的時候,它會自動去找你默認(rèn)文件中的東西,沒有寫的話程序會崩潰。 這樣編寫出來的xml文件就是對所有手機屏幕自適應(yīng)的哦親。呵呵O(∩_∩)O~ |
|
|