You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Flutter中类似0xFFff4b4b格式的十六进制颜色代码?

在Flutter中使用自定义十六进制颜色代码

1. 理解Flutter的颜色格式

你提到的0xFFff4b4b是Flutter采用的ARGB十六进制格式:

  • 前两位FF代表Alpha(透明度):FF是完全不透明,00是完全透明,中间值对应不同透明度
  • 后六位ff4b4b是标准的RGB颜色值,对应红、绿、蓝三色的十六进制分量

2. 获取目标颜色的ARGB代码

  • 从设计工具(Figma、Photoshop、Sketch等)复制普通的RGB/HEX颜色(比如#ff4b4b),在前面加上不透明的Alpha前缀FF,就得到0xFFff4b4b
  • 如果需要半透明效果,替换Alpha值即可:比如50%透明度的同色,Alpha用80,对应0x80ff4b4b

3. 代码替换示例

把你现有代码中的Colors.red替换为自定义十六进制颜色即可:

class _SplashState extends State<Splash> {
  var customFontWhite = GoogleFonts.coiny(
      textStyle:
          const TextStyle(color: Colors.white, letterSpacing: 3, fontSize: 28));
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      // 替换为自定义十六进制颜色
      backgroundColor: Color(0xFFff4b4b),
      body: Center(
        child: Text(
          'Tic-Tac-Toy',
          style: customFontWhite,
        ),
      ),
    );
  }
}

4. 简化写法(可选)

如果不想每次都手动补全Alpha前缀,可以自定义扩展方法解析普通HEX字符串:

// 自定义扩展方法,支持解析#RRGGBB或RRGGBB格式
extension HexColor on Color {
  static Color fromHex(String hexString) {
    final cleanedHex = hexString.replaceFirst('#', '');
    final fullHex = cleanedHex.length == 6 ? 'FF$cleanedHex' : cleanedHex;
    return Color(int.parse(fullHex, radix: 16));
  }
}

// 使用方式
backgroundColor: HexColor.fromHex('#ff4b4b'),

内容的提问来源于stack exchange,提问作者saba omer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 08:25:23