flutter的渐变色文本在ios和android中显示效果不同

问题描述 投票:0回答:1

我的 flutter 应用程序显示带有渐变颜色的文本。这是我的代码

final Shader linearGradientShader = ui.Gradient.linear(
  Offset(0, 20),
  Offset(150, 20),
  [Colors.red, Colors.yellow],
);
return Center(
  child: FittedBox(
    child: Text(
      '#stackoverflow',
      style: TextStyle(
        foreground: Paint()..shader = linearGradientShader,
        fontSize: 60,
        fontWeight: FontWeight.bold,
      ),
    ),
  ),
);

但是在ios设备中,文字不如android流畅。我怎样才能解决这个问题?下图是ios

ios flutter gradient
1个回答
0
投票

Android 和 IOS 之间的文本渲染有所不同,要改善这一点,您可以尝试设置字体大小和抗锯齿设置:

final dpr = MediaQuery.of(context).devicePixelRatio;

MediaQuery.devicePixelRatio 是一个属性,告诉您 设备屏幕上的物理像素到逻辑像素。

Text('#stackoverflow'),
style:TextStyle(
foreground:Paint()..shader=linearGradientShader,
fontSize:60*dpr,
fontWeighty:FontWeight.bold,
textAntialias:true,),),

试试这个希望有帮助!

您可以从这里阅读有关 MediaQuery.devicePixelRatio 的内容,以对其有一个清晰的了解: https://flutterassets.com/most-popular-flutter-mediaquery-properties/#:~:text=devicePixelRatio%20in%20Flutter%3F-,MediaQuery.,of%20the%20设备的%20pixel%20密度。

© www.soinside.com 2019 - 2024. All rights reserved.