Android程序對不同手機屏幕分辨率自適應的方法(轉)

    由於OEM之間的競爭,各種Android操作系統的手機簡直就是琳琅滿目,屏幕分辨率的差異可想而知。目前比較主流的有WVGA=800x480,HVGA=480x320,另外的還有QVGA=320x240。當然還有魅族M9的DVGA=960x640,還有蛋疼的摩托羅拉的FWVGA=854x480。

    那麼,如何讓你的程序可以在不同分辨率的手機上“健康”的跑動呢?

    其實,在你layout的xml文件中,編寫的時候是不是用了許多的padding呢?如果是,那你就蛋疼了。因爲這樣的佈局永遠是無法適應所有手機屏幕的。正確的做法應該是使用weight屬性。

    過程很簡單:首先,將你控件的layout中的width、height設置爲fill-parent,不要使用wrap——content。因爲wrap-content的大小是不固定的。而weight(權重)這個屬性很好的解決了這個問題。

    當包裹在控件外面的Layout的width、height屬性都設置爲fill-parent時,可以利用weight的反比特性。即如果控件A設置weight爲9,控件B設置weight爲20,那麼A所佔的空間爲20/(9+20),B所佔的空間爲9/(9+20)。這樣的反比屬性對任何分辨率下的手機都是合適的。

    當然,字體就不行了。那怎麼保證字體能夠跟佈局一樣能夠自適應呢?

    呵呵,很簡單,就是在你的res文件夾中創建一個文件夾,叫做values-320x240。其中320x240是你手機屏幕的分辨率,根據你手機屏幕的情況做不同的命名,例如values-800x480。在該文件夾下創建一個dimens.xml文件,定義各種字體的大小。那麼系統就會自動根據你手機屏幕的分辨率去調用響應的文件夾。
   另外,值得提醒的是,記得在你默認的values文件下的dimens.xml文件中也要寫上相應的字體大小哦,因爲當系統無法認識你手機屏幕大小的時候,它會自動去找你默認文件中的東西,沒有寫的話程序會崩潰。
轉自:
http://dev.10086.cn/cmdn/bbs/thread-60915-1-1.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章