(Android) 針對不同屏幕解析度設計UI

1、不同的layout 
Android 手機屏幕大小不一,有480x320,640x360,800x480.怎樣才能讓App自動適應不同的屏幕呢? 其實很簡單,只需要在res目錄下創建不同的layout活頁夾,比如:layout-640x360,layout-800x480,所有的 layout文件在編譯之後都會寫入R.java裏,而系統會根據屏幕的大小自己選擇合適的layout進行使用。2、hdpi、mdpi、ldpi前的 版本中,只有一個drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個,這三個 主要是爲了支持多分辨率。 
drawable- hdpi、drawable- mdpi、drawable-ldpi的區別: 
drawable-hdpi裏面存放高分辨率的圖片,如WVGA (480x800),FWVGA (480x854) 
drawable-mdpi裏面存放中等分辨率的圖片,如HVGA (320x480) 
drawable-ldpi裏面存放低分辨率的圖片,如QVGA (240x320) 
系統會根據機器的分辨率來分別到這幾個活頁夾裏面去找對應的圖片。在開發程序時爲了兼容不同平臺不同屏幕,建議各自活頁夾根據需求均存放不同版本圖片。 

屏幕方向 
1、橫屏豎屏自動切換可以在res目錄下建立layout-port和layout-land兩個目錄,裏面分別放置豎屏和橫屏兩種佈局文件,這樣在手機屏幕方向變化的時候系統會自動調用相應的佈局文件,避免一種佈局文件無法滿足兩種屏幕顯示的問題。 
2、禁用自動切換 
只需要在AndroidManifest.xml文件中加入android:screenOrientation屬性限制。 
Android:screenOrientation="landscape" //是限制此頁面橫屏顯示 
Android:screenOrientation="portrait"     //是限制此頁面數豎屏顯示 


字體自適應大小 
方法1: 
首先根據不同分辨率獲取不同字體大小。 
在RES裏創建 
values-480x320/strings.xml 裏面設置<dimen name="Text_size">30px</dimen> 和 values-800x400/strings.xml 裏面設置<dimenname="Text_size">30px</dimen> 分別代表480X320 和 800X400分辨率情況下字號爲30px和40px; 
在java文件中這樣調用 int sizeOfText = (int)this.getResources().getDimension(R.dimen.Text_size); 
方法2: 
在視圖的 onsizechanged裏獲取視圖寬度,一般情況下默認寬度是320,所以計算一個縮放比率rate = (float) w/320   w是實際寬度 然後在設置字體尺寸時 paint.setTextSize((int)(8*rate));   8是在分辨率寬爲320 下需要設置的字體大小實際字體大小 = 默認字體大小 x rate 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章