React Native中使用的尺寸单位是dp(一种基于屏幕密度的抽象单位。在每英寸160点的显示器上,1dp = 1px),而设计师使用的是px, 这两种尺寸如何换算呢?

官方提供了PixelRatio进行pt到px的转换

import {PixelRatio} from 'react-native';
const dp2px = dp=>PixelRatio.getPixelSizeForLayoutSize(dp);
const px2dp = px=>PixelRatio.roundToNearestPixel(px);

设计师给你一个尺寸,比如100px*200px的View,按照下面的方式可实现设计还原:

View style={{width:px2dp(100),height:px2dp(200),backgroundColor:“red”}}
如果每个地方都这样写会很麻烦,于是我们就有了下面转换代码

import {PixelRatio,Dimensions}} from 'react-native';
const dp2px = dp=>PixelRatio.getPixelSizeForLayoutSize(dp);
const px2dp = px=>PixelRatio.roundToNearestPixel(px);
let designSize = {width:720,height:1280}; //假设设计尺寸为:720*1280
let pxRatio = PixelRatio.get();
let win_width = Dimensions.get("window").width;
let win_height = Dimensions.get("window").height;
let width = dp2px(win_width);
let height = dp2px(win_height);
let design_scale = designSize.width/width;
height = height*design_scale
let scale = 1/pxRatio/design_scale;
实际使用:
要在最外层View上设置如下样式:const styles = StyleSheet.create({
container: {
width: width,
height: height,
transform: [{translateX: -width * .5}, {translateY: -height * .5}, {scale: scale}, {translateX: width * .5}, {translateY: height * .5}]
}
});

在后续的开发中将不必再关注适配的问题,只需要按照设计师给的尺寸实现布局即可,比如设计稿中的图片尺寸是300px*300px,你的样式中就写 width: 300,height: 300,

这里就写设计稿上的300px 300px,不用带单位
image: {
width:300,
height:300
}

参考文件:https://blog.csdn.net/weixin_40166364/article/details/78532992
https://www.cnblogs.com/dongdong415/p/10785335.html
https://blog.csdn.net/qq_25905161/article/details/81331721
https://blog.csdn.net/weixin_40166364/article/details/78532992

React Native不同设备分辨率适配和设计稿尺寸单位px的适配相关推荐

  1. 为什么375×667是移动端原型设计的最佳分辨率:flutter 设计稿尺寸最好也是375×667...

    部分PM在设计移动端产品的时候,往往是随意画了个原型尺寸或者上网找个模板套进去,当然也有部分知道用375×667比较好,但是不知其所以然.接下来,我来讲清楚为什么以及前世今生. 原型尺寸的历史 既然是 ...

  2. uni-app 对照设计稿还原不同屏幕像素适配(iPhone X)

    最近项目中需要高频度使用单位像素换算,以适配不同屏幕大小的需求,这里我以蓝湖为例,下面我给出换算步骤: 1.把蓝湖设计稿选到 ios 端,这时候页面单位变成了pt,因为我们iPhone X的屏幕和这个 ...

  3. 移动端web设计尺寸_移动端H5页面的设计稿尺寸大小规范

    当我们在做手机端H5网页设计稿时(当然包含微信端的H5网页设计),如果没有做过类似的移动端的设计,UI设计师和前端工程师肯定会纠结的.如果是app设计师,就不会那么纠结啦. 那么多手机屏幕尺寸,设计稿 ...

  4. 移动端h5页面的设计稿尺寸

    当我们在做手机端H5网页设计稿时(当然包含微信端的H5网页设计),如果没有做过类似的移动端的设计,UI设计师和前端工程师肯定会纠结的.如果是app设计师,就不会那么纠结啦. 延伸阅读: 2015年度最 ...

  5. 移动端 H5 分屏页面适配问题--设计稿比例与设备宽高比例不同

    移动端 H5 分屏页面适配问题 单位问题 肯定用rem, 为了方便计算,一般取 1rem=100px(设计稿px), 需要根据设计稿的宽度设置合适的fontSize, 具体可以看这篇文章 :移动端根据 ...

  6. ui设计移动端字体适配_UI设计稿中常见的单位及移动端适配

    一.pt 在我们的设计稿中,经常看到以pt单位来标注的稿子,那么pt究竟是个什么单位?其实pt是用于印刷行业用来表示字体大小的单位,也叫做磅,用过word设置字体的应该不会陌生,它是一个绝对长度,为1 ...

  7. 移动端web设计尺寸_移动端H5页面的设计稿尺寸(上)

    由于HTML5和微信内置浏览器的火爆,移动端H5网页越发流行.在设计制作移动端网页的时候,你是否疑惑,这种网站设计稿应该做成的多少屏宽,是否应该跟手机的分辨率一致,还是应该按照iPhone的分辨率来设 ...

  8. AutoView自动为旧设计稿更新新设计稿尺寸

    使用AutoView适配框架适配Ui的时候,可以直接根据ui设计的尺寸做界面. 但是坑爹的Ui, 在设计时如果使用两种不同尺寸的设计稿,或者复用不同尺寸的设计稿,那在处理时,就需要花一番功夫测量设计稿 ...

  9. 移动端H5页面的设计稿尺寸大小规范

    请注意:(以下所有讨论内容和规范均将viewport设定为content="width=device-width"的情况下) 也就是我们的H5页面前端代码里面必须包含 <me ...

最新文章

  1. What's preconnect.svc in 11g RAC?
  2. 爱的十个秘密--2.思想的力量
  3. Python中字符串String去除出换行符(\n,\r)和空格的问题
  4. 剑指Offer之翻转单词顺序列
  5. 关于vhr项目部署所遇到的问题总结,Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin
  6. 不想再被鄙视?那就看进来! 一文搞懂Python2字符编码
  7. 前端解决浏览器直接打开图片URL,下载问题
  8. plc控制伺服电机 四轴攻丝机案例 该程序为plc控制伺服电机的工程案例程序,包含伺服电机接线图,包含程序流程的详细解释说明
  9. 迅捷新版PDF转换器
  10. 商业模式及其 SubDAO 深入研究
  11. 初学者如何选购入门民谣吉他
  12. 解决Access数据库突然变得很大的方法
  13. Prometheus使用cAdvisor监控Docker容器指标
  14. *ST荣联:正在培养区块链团队,积极储备相关解决方案的能力
  15. 异构服务器 微服务_微服务架构是什么?
  16. 【ShardingSphere技术专题】「ShardingJDBC实战阶段」SpringBoot之整合ShardingJDBC实现分库分表(JavaConfig方式)
  17. 网上期货开户合约签署流程
  18. arduino烧录esp8266出错:error: espcomm_upload_mem failed
  19. 如鹏网学习笔记(十三)EasyUI
  20. ArcGIS根据经纬度在地图上添加坐标点

热门文章

  1. 在IDEA里斗个地主不过分吧!
  2. Linux资源监控top命令详解(服务器性能指标)
  3. An Improved Blockchain Consensus Algorithm Based on Raft(Raft算法改进区块链效率
  4. Java设计模式--代理模式
  5. 从零实现深度学习框架——LSTM从理论到实战【理论】
  6. 给当代大学毕业生的十条建议
  7. 谷歌为 Chrome 推出12款官方新皮肤
  8. 简析术捷盈库适合新手的一些内容和要素
  9. 我决定做个教大家如何在家创业的博客
  10. 一些对数学领域及数学研究的个人看法(转载自博士论坛wcboy)