Android的尺寸单位:dp/sp/density

dp:Density-independent pixel 密度独立像素
sp:scale-independent pixel 缩放独立像素

sp与dp类似,不同的是,sp用于文字单位,可以根据系统设定,缩放文字大小。

在深入了解这两个单位之前,先普及一下其他基础单位:

px:像素,简单理解,就是屏幕上的点,比如分辨率为300*480,横向有320个点,竖直方向有480个点

dpi:dots per inch,屏幕上每英寸的点数,同样是分辨率为320*480的分辨率,在2X3英寸的屏幕上:
dpi=320/2=480/3=160。同样的分辨率,放到4X6英寸的屏幕上,dpi就只有80了,图像看起来会变得模糊

ppi:对角线上的像素点数/对角线的长度。ppi=dpi。常用的4.7,5.0英寸屏幕,指的就是对角线长度

dp的定义:在160dpi的屏幕上,1个像素所占的长度,1dp=1px=(2/320) inch = 1/160 inch。
可以把dp理解为一个固定的物理长度。

分辨率尺寸dpidpdensity
320*4802X3 inch1601601
480*8002X3 inch480/2=2401601.5

说明: (横向)
同样是2inch宽的屏幕上,320分辨率下,dpi为160,此时1dp=1px,屏幕宽度为 320dp
480分辨率下,dpi=480/2=240, 1dp=240/160=1.5px ,屏幕宽度为:480/1.5=320dp
可以这样理解:2inch /(1/160) inch = 320

获取和计算:
方法1:

DisplayMetrics outMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(outMetrics);
int width=outMetrics.widthPixels;
int hight=outMetrics.heightPixels;
float density=outMetrics.density;
int dpi=outMetrics.densityDpi;

方法2:

Resources resources = this.getResources();  
DisplayMetrics dm = resources.getDisplayMetrics();

计算: dp=width/density

Android 项目不同文件夹的设置:

文件SizeDPIDensity
ldpi36*361200.75
mdpi48*481601
hdpi72*722401.5
xhdpi96*963202
xxhdpi144*1444803
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值