传送门:https://blog.csdn.net/qq_33275597/article/details/52175890
https://blog.csdn.net/tuke_tuke/article/details/51111425
px:指像素,对应屏幕上每一个点
dp:指设备独立像素,在每英寸160点的显示屏上,1px=1dp;其他显示屏上不相同;
dp(dip): density dependent pixels(密度独立像素). 不同设备
有不同的密度,不同的显示效果,这个和设备硬件有关。和px相
比,它在不同密度的屏幕上显示的比例保持一致
密度Density:
Android中的密度就是屏幕每英寸包含的像素数目,单位是
dpi(dots per inch).比如实体手机屏幕的宽是2英寸长是3英
寸,
如果它的分辨率是320*480像素,那么每英寸包含的像素点就是
320/2=160dpi(横向),480/3=160dpi,那么这个屏幕的密度
就是160dpi,
如果它的分辨率是640*960像素,那么这个屏幕的密度就是
320dpi。
dp和px转换:
Android规定,在160dpi的屏幕上,1dp=1px,在320dpi的
屏幕上,1dp=2px
计算公式:px = dp * (dpi / 160),说明1dp代表了多少个px。
以160dpi为基准,密度是160dpi的多少倍就乘以dp就是px值
比如:在160dpi上,组件设置的width=200dp,那么它的实际
px值就是200*(160/160)=200px,在320dpi的密度上,实际
px值就是200*(320/160)=400px