Android屏幕適配
安卓設備非常多套腹,碎片化嚴重阅懦,需要適配~
屏幕尺寸:對角線
屏幕分辨率:橫縱向上的像素點數(shù)
單位:px ( 1px = 1個像素 )
一般縱向像素*橫向像素虎忌,主要1280x720颊郎;800x480;854x480敏弃;1920x1080盯孙;960x540鲁森;480x320;
屏幕像素密度:每英寸上的像素點數(shù)
單位:dpi ( dot per inch)
屏幕像素密度與屏幕尺寸和分辨率有關~
eg:屏幕4.95inch振惰,分辨率1920*1080
屏幕像素密度 = sqrt(1920^2 + 1080^2)/4.95;
dpi = 445;
sp:Scale-Independent Pixels 谷歌推薦不要小于12sp歌溉,表用奇數(shù)小數(shù)防止丟失精度。
px:構(gòu)成圖像的最小單位骑晶。
dp痛垛、dip:Density Independient Pixels縮寫,密度無關像素桶蛔。以160dip為基準匙头,1dip = 1dp。
不同的設備上實現(xiàn)非常好的顯示效果仔雷,因此有多種像素密度
主流的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:包裹內(nèi)容,根據(jù)內(nèi)容大小拉伸肘迎。
match_parent:填充父布局甥温。
weight::權(quán)重锻煌,權(quán)重大的優(yōu)先拉伸妓布。
也可用dp直接指定內(nèi)容大小。
weight 計算公式:計算出的寬度∷挝唷= 原來的寬度∠徽印+ 剩余控件所占的百分比
eg:
假設屏幕寬度為L,兩個Button水平擺放捂龄,一個權(quán)重是1一個權(quán)重是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 可以實現(xiàn)雙面板模式
方向限定符
res/values-sw600dp-land/layout.xml
res/values-sw600dp-port/layout.xml
4. 使用自動拉伸位圖
.9圖:9png圖片一般用在需要拉伸的地方,比如聊天程序的對話框唇撬,字數(shù)不同它匕,對話框的大小也不同。被分割為9個部分窖认。
支持各種屏幕密度
1豫柬、使用非密度制約像素
2、提供備用位圖
實施自適應用戶界面流程
屏幕適配
【整理自慕課網(wǎng): 凱子哥 http://www.imooc.com/learn/484 】
【Android Design Android 設計指南非官方簡體中文版http://www.apkbus.com/design/index.html 】