android屏幕適配

Android屏幕適配


安卓設備非常多,碎片化嚴重,需要適配~

屏幕尺寸:對角線

屏幕分辨率:橫縱向上的像素點數
單位:px ( 1px = 1個像素 )
一般縱向像素*橫向像素,主要1280x720;800x480;854x480;1920x1080;960x540;480x320;

屏幕像素密度:每英寸上的像素點數
單位:dpi ( dot per inch)
屏幕像素密度與屏幕尺寸和分辨率有關~

eg:屏幕4.95inch,分辨率1920*1080
屏幕像素密度 = sqrt(1920^2 + 1080^2)/4.95;
dpi = 445;

sp:Scale-Independent Pixels 谷歌推薦不要小于12sp,表用奇數小數防止丟失精度。

px:構成圖像的最小單位。

dp、dip:Density Independient Pixels縮寫,密度無關像素。以160dip為基準,1dip = 1dp。


不同的設備上實現非常好的顯示效果,因此有多種像素密度
主流的5種像素:mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi
以2:3:4:6:8的比例縮放,可修飾drawable和values

屏幕密度 圖標尺寸
mdpi(為基準dpi) 48*48px
hdpi 72*72px
xhdpi 96*96px
xxhdpi 144*144px
xxxhdpi 192*192px

支持各種屏幕尺寸

1. 使用wrap_content、match_parent、weight
wrap_content:包裹內容,根據內容大小拉伸。
match_parent:填充父布局。
weight::權重,權重大的優先拉伸。
也可用dp直接指定內容大小。

weight 計算公式:計算出的寬度 = 原來的寬度 + 剩余控件所占的百分比
eg:
假設屏幕寬度為L,兩個Button水平擺放,一個權重是1一個權重是2。
如果設置Button的寬度為match_parent的時候那么Button1就是2/3L = L + (L-2L) * 1/3 = L - 1/3L = 2/3L;
如果設置Button的寬度是0dp的話那就是 1/3L = 0 + L*1/3 = 1/3L

2. 使用相對布局

3. 使用限定符
layout-large(android3.2之前)
layout-sw600 可以實現雙面板模式
方向限定符

res/values-sw600dp-land/layout.xml
res/values-sw600dp-port/layout.xml

4. 使用自動拉伸位圖
.9圖:9png圖片一般用在需要拉伸的地方,比如聊天程序的對話框,字數不同,對話框的大小也不同。被分割為9個部分。

支持各種屏幕密度

1、使用非密度制約像素
2、提供備用位圖

實施自適應用戶界面流程

屏幕適配

【整理自慕課網: 凱子哥 http://www.imooc.com/learn/484
【Android Design Android 設計指南非官方簡體中文版http://www.apkbus.com/design/index.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容