【轉】android適配各類分辨率的問題

 
Android設備屏幕的尺寸是各式各樣的,如 小米是4英寸的,Xoom平板是10英寸;分辨率也千奇百怪,800×480,960×540等;Android版本的碎片化問題更是縈繞於心,不過在 設計應用時能夠分爲兩大塊:3.0以前的版本和3.0以後的版本。這種狀況會帶來什麼問題咱們用三個假設來講明一下。



1. 假設你的手上有兩個4英寸的設備,設備A的分辨率是800×480,設備B的分辨率是1600×960。你在設備A上設計了一個64×64像素的圖標,感受它大小正合適,但放到設備B上的時候,這個圖標看上去就只有以前一半大小了。
2. 假設你手上的兩個設備,設備A是4英寸,設備B是10英寸。在設備A上方放了一個tab控件,有三個頁籤。放到設備B上看時tab控件的三個頁籤被拉得很長,原本放6個頁籤的空間只放了三個頁籤。
3. 假設你手上的兩個設備,設備A裝的是Android2.3,設備B裝的是Android4.0,而設備B沒有menu建,風格也不同。你發現兩個設備上用同一套風格的皮膚並不合適。



Google提供了一套體系去解決這些問題。咱們再回到上面的那張圖,drawable文件夾有ldpi、mdpi、hdpi、xhdpi四種。dpi指像素/英寸,而ldpi指120,mdpi指160,hdpi指240,xhdpi指320。小米 手機是4英寸、854×480的分辨率,那麼小米手機的dpi就是854的平方加480的平方和開2次方後除以4,結果大約是245。若是應用安裝在小米手機上,那麼系統會調用圖中drawable-hdpi裏面的資源。這樣,你只要作4套資源分別放在drawable-ldpi、drawable-mdpi、drawable-hdpi以及drawable-xdpi下(圖標能夠按照3:4:6:8的比例製做圖片資源),那麼就能夠解決上面假設1當中提到的問題。



對於相同dpi、但尺寸不同的設備,能夠經過layout文件控制各類資源的佈局。Google將設備分爲small(2~3英寸)、normal(4英寸左右)、large(5~7英寸)、xlarge(7英寸以上)。在上面的假設2種,咱們能夠在layout-normal裏配置3個頁籤的tab欄,在layout-xlarge裏配置6個頁籤的tab欄。若是應用在全部設備上佈局都同樣,那麼就不用考慮針對不一樣尺寸的layout。從圖中那些layout*文件夾能夠看出,該應用在hdpi及xhdpi上支持橫豎屏,並且橫豎屏的佈局不一致,但沒有考慮不一樣尺寸的設備使用不一樣佈局的狀況。



Android3.0以前的風格與Android3.0(包含3.0)以後的風格區別很大,圖中那個應用就使用了兩種風格的資源及佈局。Android2.3的小米會使用drawable-hdpi及layout-hdpi當中的文件,而Android4.0的小米就會使用drawable-hdpi-v11及layout-hdpi-v11裏面的文件。
相關文章
相關標籤/搜索