Android系統版本及其屏幕適配

 

Android設備分辨率趨勢php

 對應關係表html

資源文件夾   屏幕分辨率  類型  對應圖標尺寸 屏幕密度   1dpandroid

xhdpi超高分辨率     1280*720  WQVGA    96*96   320     =2ide

hdpi 高分辨率          480*800   WVGA    72*72   240      =1.5工具

mdpi 中等分辨率  480*320  HVGAVGA  48*48      160     =1佈局

ldpi 低分辨率  320*240  QVGA    36*36  120       =0.75post

800x480   hdpispa

三星 GT-I9082     三星 GT-i8552              操作系統

1280x720  xhdpi設計

三星 SM-G7106     小米3    小米2s    小米2 (1280x722)  紅米2  紅米2A 

華爲榮耀3c  華爲G7  華爲mate   紅米Note    

1080x1920 xxhdpi

三星 N7506V note3    三星GALAXY S4 I9500     小米四  小米note  紅米Note2 

華爲榮耀6  華爲p8    OPPO R7    OPPO N3    OPPO R5

2560 x 1440

小米note 頂配

 

 

 

 

Android佈局的時候通常用dp爲單位,而咱們設計的時候通常用px爲單位,這涉及到單位轉換問題,而在mdpi下,屏幕密度爲160pxdp11關係,即1px =1dp(dpi/160)

因此爲了更方便轉換,在進行設計的時候,能夠優先以mdpi,即320px480px爲藍本進行設計。

dpi(Dots Per Inch):每英寸點數,也可稱爲像素密度,屏幕對角線像素值÷英寸值

px = dip * density / 160  (density 爲屏幕密度 單位:每英寸有多少個顯示點)

 

Nexus 5屏幕  4.95inch   1920*1080  DPI = 445

 

 屏幕級別:

  注意屏幕級別是按照密度分級,和像素沒有關係。若是非要讓密度和像素扯上關係,則須要一個參照系,android使用mdpi級別做爲標準參照屏幕,也就是說在320*480分辨率的手機上一個密度能夠容納一個像素。而後其餘密度級別則在此基礎上進行對比。若是理想狀況下,480*800的屏幕一個密度能夠容納1.5個像素。

  物理大小:

  單位是英寸而不是像素,也就說一個英寸在任何分辨率下顯示的大小都是同樣的,可是像素在密度不一樣的手機裏面顯示的實際的大小是不同的(這就是爲何android手機須要適配的緣由)。

  而後就是重點。

  假設1像素在160密度下顯示1英寸,則1像素在240密度基礎上顯示大約0.67英寸,在320密度下顯示0.5英寸。因而就出現一種狀況,在電腦上的一個像素,在不一樣的手機上看實際的大小不同。那麼怎麼讓「設計效果」在不一樣的手機上看起來顯示的區域同樣呢?

  仍是假設一個像素在160密度下的顯示在一個密度內,也假設就是一英寸。那麼須要幾個像素才能在240密度級別下顯示在一英寸範圍內呢?答案是1.5個像素(根據上圖的比率換算)。

  瞭解了這個關係,接下來就是圖標的製做。

  2、關於切圖。

  關於切圖有幾個建議:

  第一,長寬最好是3的倍數(根據android的推薦logo圖標的大小是48mdpi),72hdpi),96xhdpi)得出的最小公約數)。

  第二,長寬最好是偶數。由於奇數在進行等比壓縮的時候可能有問題。

  第三,根據上面兩條,若是長寬是6的倍數最理想。

  第四,若是能夠拉伸而不改變設計意圖的狀況下,好比純色背景,則使用android9path工具製做成.9的圖片。

  3、關於圖標的適配。

  而後接下來的一切就和設計稿沒什麼關係。在切好圖的基礎上,根據屏幕密度、像素和實際大小的比例關係。假如設計司在480*800的分辨率下作好了設計圖,而且切好圖,若是你須要適配720*1280屏幕,該怎麼作?根據比例,他們的關係是2:3,因而你須要按照1.5倍比例製做圖標,好比你在480*800的設計稿上切下來一個20*20像素的圖,那麼你就須要製做一個等比放大成30*30像素的圖標,這樣同一個圖標在480*800的屏幕和720*1280的屏幕上顯示的實際大小才同樣。同理,若是你須要適配xxhdpi則須要在20*20的基礎上製做一個等比放大成40*40像素的圖標。

  4、關於圖標的目錄,480*800切下來的圖咱們放在drawable-hdpi目錄下,按照2:3放大的圖標放在drawable-xhdpi目錄下,按照2倍放大的圖標放在drawable-xxhdpi目錄下。

  android會根據手機的密度優先查找對應的目錄的資源,

  好比408*800分辨率下的手機若是密度是160,則自動加載drawable-hdpi這個目錄下的圖標,

  若是720*1280密度是240的手機自動加載drawable-xhdpi這個目錄下的圖標。若是沒有這個文件夾,則查找和240最接近的對應密度文件夾。

  3、其它

  根據上面的步驟也不能徹底解決適配的問題,只能是大概適配,而就算根據上面的步驟大概適配了,實際在手機上的效果也有出入。

  好比魅族MX3的分辨率是1080*1800,標準狀況下密度是480,可是他的密度大約是524,和480接近,也就是會查找drawable-xxhdpi這個資源下的文件。也就是說你在480*800分辨率下切圖而後按兩倍放大的圖標在這臺手機上顯示的效果仍是比實際的小。

  而另外一個要說的問題是540*960或者640*960,他們的密度極可能是或者接近240也多是320。因而在480*800的設計稿上切下來的圖而且進行的適配製做,在這些手機上顯示的實際大小也可能或大或小。

 

 

 

.9.pngAndroid裏所支持的一種特殊的圖片格式,能夠實現部分拉伸。切圖時須要留空白 以下

 

 

res/目錄下建立一個不一樣的layout文件夾、values文件夾、drawable文件夾等資源文件夾

 

資源文件夾命名:資源名-屬性1-屬性2-屬性3-屬性4-屬性5.....( values-ldpivalues-land-mdpi

即以<resources_name>-<qualifier>格式命名系統會根據屏幕的大小本身選擇合適的進行使用。

其中resources_name資源名就是資源類型名,包括:drawable, values, layout, anim, raw, menu, color, animator, xml;

<qualifier> 是一個配置限定符,指定對應的屏幕參數,限定符能夠參考如下表:

 

 

 

 

手機特性   資源限定符   描述

 

屏幕尺寸   small    小尺寸屏幕

normal    正常大小的屏幕

large     大尺寸屏幕

xlarge    超大尺寸的屏幕

 

分辨率    320x240    values-ldpi-320x240

480x320    values-480x320

800x480    values-800x480

854x480    values-854x480

960x540    values-960x540values-hdpi-960x540

960x640    values-960x640values-xhdpi-960x640

1024x600   values-mdpi-1024x600

1280x7201280x800 values-1280x720

其餘    values-xhdpi-1184x768          values-xhdpi-1280x720          values-xhdpi-1920x1080

 

密度    ldpi     低密度~120dpi

mdpi    中密度~160dpi

hdpi     高密度~240dpi

xhdpi    超高密度〜320dpi 

nodpi    存放無視屏幕密度的資源,如:一些不能被拉      伸的圖片放在 drawable-nodpi ,但寬和高要      wrap_content

tvdpi    主要用於電視,大多數App不須要用到

 

方向    land     橫向屏幕

port     縱向屏幕

 

版本    v1~v19    新建工程時能夠看見,API 1API 19

 

 

 

 

 

 

 

 

 

 

                 Android操做系統趨勢

 

 

 

參考:

http://www.cnblogs.com/tinyphp/p/4008400.html

http://www.umindex.com/devices/android_resolutions

http://www.hanshuliang.com/?post=18

相關文章
相關標籤/搜索