如何在不同类型的分辨率下处理字体大小

时间:2019-01-04 15:08:27

标签: flutter

我正在使用Pixel 2模拟器进行开发,当然,我使用的字体大小对该手机非常好。

在使用iPhone 5S时,我期望字体大小会减小并且与该屏幕分辨率成比例。也许Flutter做了些什么,但乍一看并不容易。

我找到了'flutter_screenutil'插件,但无法正常工作。可能是因为我没有为ScreenUtil.instance = ScreenUtil(width: 750, height: 1334)..init(context);输入正确的值,这些值是iphone 6的“设计中设备的屏幕尺寸”(基于示例)。

如果我在Blackberry Motion(1080x1794)上使用字体大小为100的插件,则结果是我期望的。在iPhone 6(750x1334)上使用相同的代码,我应该使用70号字体。不是很有用。

有人能在不更改代码中字体大小值的情况下,以不同的分辨率处理字体大小的好方法吗?

1 个答案:

答案 0 :(得分:-1)

您可以尝试使用Google字体。由于Flutter使用自定义字体,因此您可以将自定义字体应用于整个应用或单个小部件。使用字体大小为20的“ Pacifico”系列产品时,我看不到任何问题。我还在Pixel 3和Iphone 11上测试了以下测试代码,并且看不到任何问题。

步骤简单,如flutter文档中所述:

  1. 导入字体文件。
  2. 在pubspec中声明字体。如果可能,我下载了 来自https://fonts.google.com/specimen/Pacifico?selection.family=Pacifico
  3. 的Pacifico
  4. 在特定的小部件中使用字体。

我的pubspec.yaml文件:

flutter: fonts: - family: Pacifico fonts: - asset: fonts/Pacifico-Regular.ttf 我的main.dart文件:

` Widget build(BuildContext context) {
 return MaterialApp(
   title: 'Font test',
   home: Scaffold(
     backgroundColor: Colors.white,
     body: SafeArea(
       child: Column(
         children: <Widget>[
           Container(
             height: 100.0,
             width: 100.0,
             color: Colors.red,
             child: Text(
               'container one',
               style: TextStyle(
                 fontFamily: 'Pacifico',
                 fontSize: 20.0,
               ),
             ),
           ),
           Container(
             height: 100.0,
             width: 100.0,
             color: Colors.blue,
             child: Text(
               'container two',
               style: TextStyle(
                 fontFamily: 'Pacifico',
                 fontSize: 20.0,
               ),
             ),
           ),
           Container(
             height: 100.0,
             width: 100.0,
             color: Colors.purple,
             child: Text(
               'container three',
               style: TextStyle(
                 fontFamily: 'Pacifico',
                 fontSize: 20.0,
               ),
             ),
           ),

         ],
       ),
     ),
   )
 );
}

如果您对字体有任何疑问,请告诉我。另外,如您所见,它是基本的示例应用程序。如果您能通过代码示例帮助我重现此问题,将不胜感激。我没有Mac机器可以帮助您截屏。有了Maclaptop后,我将通过屏幕截图更新此线程