如何将Figma导出的JSON颜色设计令牌转换为Android Studio XML文件
将Figma JSON颜色设计令牌转换为Android XML文件
方法1:手动转换(适合颜色数量少的场景)
- 打开你的JSON颜色文件,提取所有颜色的名称和十六进制值。比如常见的JSON结构:
{ "primary": "#FF6200EE", "secondary": "#03DAC6", "error": "#B00020" } - 在Android Studio中,打开项目的
res/values/目录,新建或编辑colors.xml文件。 - 按照Android资源格式逐个添加颜色项:
注意:资源名称必须符合Android命名规则——只能用小写字母、数字和下划线,不能以数字开头。如果JSON里的名称是驼峰式(比如<?xml version="1.0" encoding="utf-8"?> <resources> <color name="primary">#FF6200EE</color> <color name="secondary">#03DAC6</color> <color name="error">#B00020</color> </resources>primaryDark),要转成下划线式(primary_dark)。
方法2:Python脚本自动转换(适合大量颜色的场景)
如果颜色数量多,手动转换效率低,可以用简单脚本批量处理:
- 创建Python文件(比如
json_to_colors_xml.py),粘贴以下代码:import json import re # 读取JSON文件 with open('colors.json', 'r') as f: color_data = json.load(f) # 处理颜色名称,适配Android资源命名规则 def sanitize_name(name): # 驼峰转下划线 name = re.sub(r'(?<!^)(?=[A-Z])', '_', name).lower() # 替换非法字符为下划线 return re.sub(r'[^a-z0-9_]', '_', name) # 构建XML内容 xml_content = '<?xml version="1.0" encoding="utf-8"?>\n<resources>\n' for color_name, color_value in color_data.items(): # 6位RGB格式自动添加不透明alpha前缀(FF) if len(color_value) == 7 and color_value.startswith('#'): color_value = f"#FF{color_value[1:]}" sanitized_name = sanitize_name(color_name) xml_content += f' <color name="{sanitized_name}">{color_value}</color>\n' xml_content += '</resources>' # 写入XML文件 with open('colors.xml', 'w') as f: f.write(xml_content) - 将你的JSON颜色文件命名为
colors.json,和脚本放在同一目录。 - 运行脚本:
python json_to_colors_xml.py,生成对应的colors.xml文件后,复制到Android项目的res/values/目录即可。
如果JSON结构嵌套较深(比如{"colors": {"primary": {"value": "#FF6200EE"}}}),需要调整脚本中的数据提取逻辑,比如添加color_data = color_data.get('colors', {})后再遍历子项的value字段。
方法3:使用Android Studio插件
借助专门的设计令牌插件一键转换:
- 在Android Studio插件市场搜索Design Tokens或Token Studio,安装后重启IDE。
- 导入你的JSON设计令牌文件,插件会自动生成符合Android规范的
colors.xml,还能同步尺寸、字体等其他类型的设计令牌。
注意事项
- 确保JSON中的颜色值是标准十六进制格式(
#RRGGBB或#AARRGGBB),如果是RGB函数、HSL等格式,需要先转换为十六进制。
内容的提问来源于stack exchange,提问作者Azat Allaberdin
相关产品推荐
相关产品推荐

