rpx是小程序中的适配方案,它将750px作为设计稿,1rpx=屏幕宽度/750,其它所有的单位都使用rpx单位。

  • 不管是什么屏幕,统一分成750份
  • 在iPhone8上: 1rpx = 375/750 = 0.5px
  • 在iPhone12proMax 上:1rpx = 428/750 = 0.571px

所以我们就可以通过上面的计算方式,算出一个rpx,再将自己的size和rpx单位相乘即可: 比如300px的宽度:3002rpx

  • 在iPhone8上计算出的结果是300px
  • 在在iPhone12proMax上计算出的结果是342.6px

通过计算可以看出,还是有明显数据上的差别的。

这里也是封装一个类 Adapt,直接可以获取屏幕的信息

class Adapt {static MediaQueryData _mediaQueryData = MediaQueryData();static double screenWidth = 0;static double screenHeight = 0;static double rpx = 0;static double px = 0;static void initialize(BuildContext context, {double standardWidth = 750}) {_mediaQueryData = MediaQuery.of(context);screenWidth = _mediaQueryData.size.width;screenHeight = _mediaQueryData.size.height;rpx = screenWidth / standardWidth;px = screenWidth / standardWidth * 2;}// 按照像素来设置static double setPx(double size) {return Adapt.rpx * size * 2;}// 按照rxp来设置static double setRpx(double size) {return Adapt.rpx * size;}
}

示例代码

@override
Widget build(BuildContext context) {Adapt.initialize(context);return Scaffold(appBar: AppBar(title: const Text('屏幕适配'),),body: Center(child: Container(width: Adapt.setPx(300),height: Adapt.setPx(300),color: Colors.orange,alignment: Alignment.center,child: Text('Hello Word',style: TextStyle(fontSize: Adapt.setPx(30)),textAlign: TextAlign.center,),),),);
}

注意:一定要在已经有 MaterialApp 的 Widget 中使用 context ,否则是无效的。这里定义默认效果图的尺寸是 375*667,这里是可以自定义传入效果图的宽度的。

原文链接:https://juejin.cn/post/7039868577658175524

flutter rpx屏幕适配方案相关推荐

  1. 11-Flutter移动电商实战-首页_屏幕适配方案和制作

    11-Flutter移动电商实战-首页_屏幕适配方案和制作 1.flutter_ScreenUtil插件简介 flutter_ScreenUtil屏幕适配方案,让你的UI在不同尺寸的屏幕上都能显示合理 ...

  2. 安卓屏幕适配方案(根据今日头条方案,升级版)

    前言 屏幕适配方案有很多,比如原生的dp,鸿洋大神的AutoLayout,宽高限定符,今天我用缺点比较小的今日头条方案 头条适配方案的文章链接:https://mp.weixin.qq.com/s/d ...

  3. 今日头条屏幕适配方案落地研究

    目录 前言 各平板数据比较 为什么看起来更小了?(头条方案跟最小宽度方案比较) smallesWidth 方案迁移 优缺点 issue 附录(适配核心代码) 前言 大家好,现在给大家推荐一种极低版本的 ...

  4. android屏幕适配教程,Android屏幕适配方案,android屏幕适配

    Android屏幕适配方案,android屏幕适配 文章转载禁止用于商业用途,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处莫高雷草原以及作者@JiongBull. Android屏幕适配方 ...

  5. 给你一个全自动的屏幕适配方案(基于SW方案)二 —— Calces.Screen插件拓展功能升级...

    如果不了解Calces.screen插件的用法或者想深入了解sw( Smallest Width) 屏幕适配方案的话,可以阅读上一篇文章: 给你一个全自动的屏幕适配方案(基于SW方案)!-- 解放你和 ...

  6. Cocos2d-html5 2.2.2的屏幕适配方案

    来自:http://www.cocos2d-x.org/docs/manual/framework/html5/resolution-policy-design/zh 关于屏幕适配 作为WEB开发者, ...

  7. 2021年最详细的Android屏幕适配方案汇总

    1 Android屏幕适配的度量单位和相关概念 建议在阅读本文章之前,可以先阅读快乐李同学写的文章<Android屏幕适配的度量单位和相关概念>,这篇文章包含了阅读本文的一些基础知识,推荐 ...

  8. 移动端高清、多屏幕适配方案

    2019独角兽企业重金招聘Python工程师标准>>> 移动端高清.多屏幕适配方案 http://div.io/topic/1092 https://github.com/amfe/ ...

  9. android smallestWidth 限定符屏幕适配方案dimens.xml

    简介 smallestWidth 限定符适配方案 这个方案的的使用方式和我们平时在布局中引用 dimens 无异,核心点在于生成 dimens.xml 文件,但是已经有大神帮我们做了这 一步 ├── ...

最新文章

  1. linux pthread_join 使用记录
  2. axurehtml打开不用用_还有人花钱买会员看剧?赶紧用iPhone免费追剧
  3. labview 软件编程规范
  4. .Net 应用程序体系结构—C#高级编程(第10版)学习笔记5
  5. 计算机科学课程体系核心内容,计算机科学教育的课程体系之研究
  6. 虚幻4 控制台_虚幻引擎打造足球手游!实况足球新引擎测试今日开启
  7. Ubuntu安装JDK6和JDK5
  8. 用python编写一个弹球游戏
  9. Axure插入ArcGIS地图或天地图
  10. Windows 10 21H1开启关闭卓越模式
  11. POI Invalid column index (-5).Allowable column range for EXCEL2007 is (0..16383) or (‘A‘..‘XFD‘)问题解决
  12. 微信PC版多开的方法
  13. 金属塑性成形计算机模拟仿真,金属塑性成形计算机模拟的若干进展
  14. 玩转【斗鱼直播APP】系列之界面分析
  15. 阿里技术风险与效能部负责人张瓅玶:从底层资源到核心竞争力 阿里巴巴的深度用云实践
  16. ios11更新提示信任_iphone 信任_苹果ios11信任设置在哪
  17. 说说IO(七)- RAID
  18. D. Cloud of Hashtags(逆向贪心)
  19. stm32之中断模式
  20. java重命名sheet失败_错误1004重命名工作表

热门文章

  1. 5年运维经验分享:一个小白走向高级运维工程师之路
  2. 袋鼠云数据湖平台「DataLake」,存储全量数据,打造数字底座
  3. 连续仨月霸占牛客榜首京东T8呕心巨作:700页JVM虚拟机实战手册
  4. ts定义数组类型_ts基本类型
  5. Docker的安装和使用
  6. 别出心裁的Linux系统调用学习法
  7. PEST、5W2H、逻辑树、4P营销理论、用户行为分析
  8. 第19部分- Linux x86 64位汇编GDB单步调试
  9. influxdb的percentile函数
  10. linux自动断开会话,Linux系统SSH连接自动断开问题的解决方法