在react-native中,我们经常使用数字,比如宽度,高度,大小等数字,那么数字的单位是多少
pt(磅,72分之一英寸,一般英文字体,就是用的这个单位)
px(像素,屏幕上一个点,一般控件、标签的绝对定位,用这个)
em (相对长度单位,相对于当前对象内文本的字体尺寸 1em=16px)
RN长宽单位默认对应DP:所谓与密度无关就是密度变化不引起物理尺寸的变化,这一点DP与RN官方说的一致.
现在想想,也就是说1DP在物理尺寸上不管屏幕的分辨率怎么变化,它的物理尺寸是固定不变的是核心
脑海里想象我的电脑是一个手机屏幕,我把分辨率调高了,也就是屏幕密度变大了,物理尺寸没有变,那么一个像素代表的物理尺寸也就小了,1DP要保持它的物理尺寸不变化,那么就要转化成更多的像素点
在React Native 中 PixelRatio.get() 是获取屏幕密度的.
80 dpi 上 PixelRatio.get()=0.5 1dp=0.5px
160 dpi 上 PixelRatio.get()=1 1dp=1px
320dpi 上PixelRatio.get()=2 1dp=2px
从上面的规律分析得出 react native 中 1px=1dp/屏幕密度 而屏幕密度=PixelRatio.get()
所以 1px=1dp/PixelRatio.get()
React Native中的尺寸都是无单位的,表示的是与设备像素密度无关的逻辑像素点。----来自 官网长度和高度说明