in:表示英寸,是屏幕的物理尺寸。每英寸等于2.54厘米。
mm:表示毫米,是屏幕的物理尺寸。
pt:表示一个点,是屏幕的一个物理长度,大小为1英寸的1/72。
px = (density/160)dp
density一般为3个常用固定值240/160/120
Density的意思是“密度”。密度,就是说单位面积内的容量大小。
HVGA屏density=160
QVGA屏density=120
WVGA屏density=240
WQVGA屏density=120
dp也就是dip。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关
屏幕尺寸
屏幕对角线的长度
单位英寸,1英寸等于2.54厘米
分辨率
横纵向方向像素的大小
纵向像素*横向像素,如1920px*1080px
单位像素(px)
像素密度
指每英寸屏幕所拥有的像素的数量
单位dpi
三者关系
像素密度=Sqrt(横向像素*横向像素+纵向像素*纵向像素)/屏幕尺寸
注意:像素大小并不是固定的,不同的设备像素的大小可能不相同
px(像素)是我们UI设计师在PS里使用的(不解释),同时也是手机屏幕上所显示的(也不解释)
dp是开发写layout的时候使用的尺寸单位,sp是开发写layout时关于字体的字号单位,且dp与sp总为1:1关系。
Android支持四种不同的dpi模式:ldpi mdpi hdpi xhdpi
#1.像素密度适配
##布局
a.使用密度无关像素作为计量单位(dp)---原生适配
可以适配不同密度手机,但是不同的物理尺寸就无法适配了
b.百分比适配(像素)
可以适配不同密度和不同物理尺寸的手机
现在我们以320x480的分辨率为基准:
将屏幕的宽度分为320份,取值为x1~x320,将屏幕的高度分为480份,取值为y1~y480
然后生成该分辨率对应像素数的列表
##图片
图片资源分文件夹放置drawable-hdpi
#2.屏幕尺寸适配
#原生适配
使用相对布局(RelativeLayout),禁用绝对布局(AbsoluteLayout)
"wrap_content"、"match_parent"和"weight“
#weight大小计算公式
实际大小=指定大小+(屏幕大小-(所有组件大小的和))*权重比例。或者
实际大小=指定大小+(剩余大小)*权重比例。
假设屏幕宽度:L
##宽度:0dp
button1 = 0+(L-0)*1/3 = 1/3L
button2 = 2/3L
##宽度:match_parent
button1 = L+(L-(L+L))*1/3 = L +(-L)*1/3 = 2/3L
button2 = L+(L-(L+L))*2/3 = 1/3L
375dp 标注图 25dp
360dp 基准 24dp
#原型图
#切图
ui给的图标
#标注图
ui提供,各个view的尺寸/颜色/大小
2种类型
##px为单位
一般开发中ui会以Iphone6为基准设计界面(1334*750,4.7inch,dpi:325.6dpi)
对应到Android手机里面:1dp = 2px,xhdpi手机
a.直接在图片上标死的(1334*750)
b.浏览器打开的,想看哪里自己点(667*375)
##dp为单位
dimens.xml链接 https://github.com/xutengsheng/Dimens/blob/master/dimens.xml