屏幕分辨率是屏幕所包含的像素点
像素是图像的基本单位:点
Dp= dip
:deivce independent pixels(设备独立像素)不同的设备显示效果不同
Px: pixels(像素):不同设备显示效果相同
Pt:point是一个标准的长度单位,1pt= 1/72英寸。
Sp:scaled
pixels (放大像素)用于字体显示
在Android中默认使用sp作为字号单位???
其他的元素的单位用dp
Px和dp的转换方法
public static intdpTopx(Context context,floatdpValue){final floatscale =
context.getResources().getDisplayMetrics().density;return(int)(dpValue * scale +0.5f); }
public static intpxTodp(Context context,floatpxValue){final floatscale =
context.getResources().getDisplayMetrics().density;return(int)(pxValue / scale +0.5f); }
获取dimens文件中的数值可以用getResource().getDimension()返回值是一个float值
getResource().getDimensionPixelOffset()返回值int
如果是dp.sp会乘以屏幕密度
px则不变
getResource().getDimensionPixelSize()返回值int
不管什么单位都会乘以屏幕密度
屏幕分辨率:屏幕包含的像素点数
例如:1200×1040指垂直方向含有的像素数为1200水平方向含有的像素数为1040个
屏幕尺寸相同的情况下,分辨率越高,屏幕显示效果越精细
安卓中定义了pxdpdipsp
Px: pixel像素1px代表代表屏幕上的一个物理的像素点。
Px单位不建议使用,由于屏幕密度的不同,同样像素大小的一图片在不同的手机上显示的可能不一样。
但是画一条小苏表格线或者是阴影线的时候可以使用,清晰
Dip(dp):device independent pixel
安卓定义了四种像素密度:低(120dpi)/中(160dpi)/高(240dpi)/超高(320dpi)
对应的dp转换成px的系数为0.75/1/1.5/2也就是这个数×dp长度就是像素数
作用:例如有一个长度为80dp的图,那么它在240dpi的手机上实际显示为80 × 1.5= 120 px
在320dpi的手机上实际显示为80 × 2 = 160 px
但是如果把两个手机上的图片放在一起比较会发现物理尺寸差不多大,这是dp的作用
Sp:Scale—independent Pixel和缩放无关的抽象像素。
sp与dp的区别是正常情况下1sp= 1dp=0.00625英寸
当文字尺寸是大或者是超大时,1sp>1dp= 0.00625
作用是调整字体大小。










网友评论