【问题标题】:Does Flexbox in React Native use dp or pixel?React Native 中的 Flexbox 是使用 dp 还是像素?
【发布时间】:2015-11-12 11:10:30
【问题描述】:

正如标题所述,我对 RN 中使用的布局大小值的单位感到困惑。在documentation 中,下面的代码表明它使用 dp 而不是像素作为大小单位。这里的 getPixelSizeForLayoutSize() 函数尝试将 dp 值转换为像素值。但是,在实际应用程序中,当不使用 PixelRatio.get() 划分大小值(高度/宽度等)时,我的组件会超出屏幕范围。非常感谢您的澄清!

var image = getImage({
  width: PixelRatio.getPixelSizeForLayoutSize(200),
  height: PixelRatio.getPixelSizeForLayoutSize(100),
});
<Image source={image} style={{width: 200, height: 100}} />

【问题讨论】:

    标签: android react-native


    【解决方案1】:

    React Native 在 JavaScript 级别使用逻辑像素(在 iOS 上也称为“点”),而不是设备像素。在原生级别工作时,您有时可能需要通过将逻辑像素乘以屏幕比例(例如 2x、3x)来处理设备像素。

    在处理图像时,您需要以逻辑像素为单位指定它们的尺寸。此外,React Native 支持小数像素。当您需要以设备像素为粒度指定精确布局时,请使用1 / PixelRatio.get()

    【讨论】:

    • 感谢艾德。我所有的设计现在都在 dp 中(Android 版本的 iOS“点”或逻辑像素)。有没有办法将 dp 转换为 iOS 点数?我做了一些搜索,但找不到太多有用的信息。
    • 我也想通了。在 Android 方面,我认为 Flexbox 在 Javascript 级别使用 dp 作为单位。
    • @ZJL 所以你能回答我的问题吗,我在任何地方都找不到解决方案..! stackoverflow.com/questions/38325043/…
    • @SudoPlz 我对字体没有太多经验,所以对您的问题没有多大帮助。尺寸 API 可能会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 2018-01-25
    • 2021-05-30
    • 2017-11-04
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    相关资源
    最近更新 更多