Posted on 2011-09-02 09:28
oathleo 閱讀(1252)
評(píng)論(0) 編輯 收藏 所屬分類:
Android
屏幕大小
1、不同的layout
Android手機(jī)屏幕大小不一,有480x320,640x360,800x480.怎樣才能讓App自動(dòng)適應(yīng)不同的屏幕呢? 其實(shí)很簡(jiǎn)單,只需要在res目錄下創(chuàng)建不同的layout文件夾,比如:layout-640x360,layout-800x480,所有的 layout文件在編譯之后都會(huì)寫入R.java里,而系統(tǒng)會(huì)根據(jù)屏幕的大小自己選擇合適的layout進(jìn)行使用。
2、hdpi、mdpi、ldpi
前的版本中,只有一個(gè)drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個(gè),這三個(gè)主要是為了支持多分辨率。
drawable- hdpi、drawable- mdpi、drawable-ldpi的區(qū)別:
1.drawable-hdpi里面存放高分辨率的圖片,如WVGA (480x800),FWVGA (480x854)
2.drawable-mdpi里面存放中等分辨率的圖片,如HVGA (320x480)
3.drawable-ldpi里面存放低分辨率的圖片,如QVGA (240x320)
系統(tǒng)會(huì)根據(jù)機(jī)器的分辨率來分別到這幾個(gè)文件夾里面去找對(duì)應(yīng)的圖片。在開發(fā)程序時(shí)為了兼容不同平臺(tái)不同屏幕,建議各自文件夾根據(jù)需求均存放不同版本圖片。
屏幕方向
1、橫屏豎屏自動(dòng)切換
可以在res目錄下建立layout-port和layout-land兩個(gè)目錄,里面分別放置豎屏和橫屏兩種布局文件,這樣在手機(jī)屏幕方向變化的時(shí)候系統(tǒng)會(huì)自動(dòng)調(diào)用相應(yīng)的布局文件,避免一種布局文件無法滿足兩種屏幕顯示的問題。
2、禁用自動(dòng)切換
只需要在AndroidManifest.xml文件中加入android:screenOrientation屬性限制。
•Android:screenOrientation="landscape" //是限制此頁面橫屏顯示
•Android:screenOrientation="portrait" //是限制此頁面數(shù)豎屏顯示
字體自適應(yīng)大小
方法1:
首先根據(jù)不同分辨率獲取不同字體大小。
在RES里創(chuàng)建
values-480x320/strings.xml 里面設(shè)置<dimen name="Text_size">30px</dimen>
和
values-800x400/strings.xml 里面設(shè)置<dimen name="Text_size">30px</dimen>
分別代表480X320 和 800X400分辨率情況下 字號(hào)為30px和40px;
在java文件中這樣調(diào)用
int sizeOfText = (int) this.getResources().getDimension(R.dimen.Text_size);
方法2:
在視圖的 onsizechanged里獲取視圖寬度,一般情況下默認(rèn)寬度是320,所以計(jì)算一個(gè)縮放比率rate = (float) w/320 w是實(shí)際寬度
然后在設(shè)置字體尺寸時(shí) paint.setTextSize((int)(8*rate)); 8是在分辨率寬為320 下需要設(shè)置的字體大小實(shí)際字體大小 = 默認(rèn)字體大小 x rate