Android 屏幕適配一些理解

導語:Android碎片化嚴重,進行屏幕適配是每個Android開發者必需要作的。

經常使用尺寸:

dp(dip):密度無關像素 px:像素 sp:可根據選項文字大小設置進行縮放的尺寸單位java

咱們看一個例子 左邊的屏幕:是1920x1080的屏幕 右邊的屏幕是960x540的屏幕 圖中的button的大小是270px(像素) 在左邊的屏幕佔4分之一,在右邊的屏幕佔二分之一 http://www.dajunzai.com/wp-content/uploads/2016/10/270px.gif 咱們的目的是在各個屏幕上均顯示爲本身的四分之一 因此咱們引入了dp這個概念; 首先咱們來說一下密度比 ppi(平均像素)=對角線上的像素數/尺寸 注:對角線上的像素數用勾股定理能夠得出 dp是以160ppi(平均像素)爲基準 1dp=1px 1 dp =1 *平均像素/160 px 平均像素/160也成爲密度比佈局

假設咱們有兩款手機 1080p的密度比 2 540的密度比 爲1 那麼135dp 爲 135x2 =270px 佔左邊的四分之一; 那麼135dp 爲135x1 =135px 佔右邊屏幕的四分之一 完成了適配;spa

dp有沒有缺點?固然有, 下面是對照表 mdpi 120dpi~160dpi hdpi 160dpi~240dpi xhdpi 240dpi~320dpi xxhdpi 320dpi~480dpi xxxhdpi 480dpi~640dpiip

密度比爲2的 分辨率爲 768*1280 邏輯寬度爲384dp的Nexus4 密度比爲2的 分辨率爲760 *1280 的邏輯寬度爲380dp 的其餘手機 相差4dp 若是一個控件是380dp 則Nexus4的會有空隙,而另外一個手機會充滿開發

 

爲了解決這個問題,咱們採用代碼適配的方式,代碼適配 不考慮尺寸,採用比例的方式,把橫向的分辨率/360; 豎向的分辨率/480;得出每個份的長度和寬度,根據不一樣的限定符,獲得不一樣的結果.百度

具體java代碼網上不少自行百度。程序

        代碼適配:im

        用法:把生成的代碼放入到res文件夾中,並把默認的value文件夾也添加1dp=1px比例的尺寸文件; 咱們要注意一個問題,當分辨率沒有找到他的限定符,那麼他找到默認的value文件夾,咱們須要在value文件夾裏也加入尺寸文件,1dp=1px這樣是爲了程序兼容,但並非很好的效果.因此咱們儘可能要把儘可能多種的分辨率加到尺寸文件裏說完了固定尺寸適配,img

        咱們說一下佈局中的適配. 推薦用LinearLayout 比例適配 weight 和weightsum互相結合能夠知足基本上的須要. 兼容

相關文章
相關標籤/搜索