react-native获取设备尺寸

布局尺寸(dp)

Density-independent Pixels,通过dp定义的布局尺寸会根据屏幕密度自动缩放。例如:

  • 在160dpi(基线密度)的屏幕上,1dp = 1px;
  • 在320dpi(xhdpi)的屏幕上,1dp = 2px(公式:px = dp × (dpi/160))。
    ​​

RN中的应用​​: RN默认使用dp作为布局单位,开发者无需显式指定单位,系统会根据设备密度(scale)自动转换。例如,width: 100在Android上表示100dp,在iOS上表示100pt,但两者效果等价于物理尺寸。

像素尺寸(px)

​​px是屏幕上的实际物理像素点,与设备分辨率直接相关。

​​问题​​: 直接使用px可能导致UI在不同密度的屏幕上显示不一致。例如,在640px宽度的设计稿中,iPhone4(640×960px)会占满屏幕,但iPhone6(750×1334px)则会留白。

例子

iPhone16的dp和px大小:

  • {“fontScale”: 1, “height”: 852, “scale”: 3, “width”: 393}
  • {“height”: 2556, “width”: 1179}

如何获取设备的像素尺寸

第一步:先获取设备的布局尺寸dp。dimensions

const {height, width} = Dimensions.get('screen');

第二步:将dp转换成px。pixelratio

{
  width: PixelRatio.getPixelSizeForLayoutSize(width),
  height: PixelRatio.getPixelSizeForLayoutSize(height),
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值