OpenFlutter/flutter_screenutil

scaleWidth计算的有问题.

Closed this issue · 2 comments

首先, 文档中说传入的设计稿尺寸是物理像素值, 例如750x1334.

然后计算比例的实现是这样的:

  ///实际的dp与设计稿px的比例
  get scaleWidth => _screenWidth / instance.width;

  _screenWidth = mediaQuery.size.width;

_screenWidth是逻辑像素值, 比一个物理像素值instance.width, 这结果是有问题的.
应该这样计算:

  get scaleWidth => _screenWidth * _pixelRatio / instance.width;

最后setWidth()方法传入设计稿上的像素值, 比如设计稿上一个按钮宽40像素:

ScreenUtil.getInstance().setWidth(40)

我认为这样才是对的.
请指教.

嗯 。。。
我的注释写的是

///实际的dp与设计稿px的比例

就。。我就是想拿到一个dp与px的比值。。

不好意思, 我知道我哪想错了, fontSize、width属性接收的值的单位是dp, 我算出来的结果是px, 需要再除一个像素比, 简化一下就是您的算法.