android屏幕适配

Android屏幕适配


安卓设备非常多,碎片化严重,需要适配~

android屏幕适配_第1张图片

屏幕尺寸:对角线

屏幕分辨率:横纵向上的像素点数
单位: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。

android屏幕适配_第2张图片

不同的设备上实现非常好的显示效果,因此有多种像素密度
主流的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 】

你可能感兴趣的:(android屏幕适配)