Android AI解放生产力(四)实战:解放绘制UI的繁琐工作

公司当前项目是使用Figma UI设计工具,以这个为例。

Figma当前是有MCP供对外使用的。配置教程见Figma官网。

一、编辑skill

看完之前的文章大概就了解了如何创建一个skill。

skills文件夹创建一个子文件夹,子文件夹名字是figma_ui_to_xml,然后在figma_ui_to_xml内创建一个Markdown文件,文件名是固定的SKILL.md

编辑namedescription,为了让skill被调用,我在description加上了粘贴Figma MCP链接时一定有的一段文案Implement this Figma design.。下面是Figma MCP粘贴链接的内容:

kotlin 复制代码
Implement this Figma design.
@https://www.figma.com/design/Lod2RUqzBCaISqN4/FOXX-UI-library?node-id=43080-44506&m=dev

下面是namedescription

kotlin 复制代码
---
name: figma_ui_to_xml
description: Implement this Figma design。将Figma MCP链接转换为Android原生XML。
---

在SKILL.md中根据项目的实际情况编辑提示词,把所有的可以参考的文件,例如抽取的style,颜色等都写进去,下面是我删减过敏感信息后的提示词:

kotlin 复制代码
---
name: figma_ui_to_xml
description: Implement this Figma design。将Figma MCP链接转换为Android原生XML。
---
# 将Figma MCP链接转换为Android原生XML

• 严格按下面流程执行(后续每次你给 Figma MCP 链接都照此做):

  1. 提供 Figma MCP 原始数据链接/节点链接后,先用 Figma MCP 把节点的结构信息、尺寸/位置、颜色/变量、文本内容、字体与字号、间距、圆角/描边/阴影等全部提取
     出来(必要时再取 screenshot 辅助核对)。
  2. 把提取到的设计元素映射成 Android 原生 View:根布局一律 ConstraintLayout,match_parent,并把 constraints 写完整,避免运行时跑到 (0,0)。
  3. 严格按项目规范生成 XML:
      - View 尽量用 AppCompat(如 AppCompatTextView)。
      - 所有 id 用 snake_case(例如 @+id/tv_title)。
      - 尺寸用 dp,字号用 sp。
      - 文本优先放 res/values/strings.xml;如果确认找不到对应 key,就按你规则在 XML 里写死文案。
      - 颜色优先用 res/values/colors.xml 资源;没有就写死 #RRGGBB。
      - 字体按约定:Regular/Light/Medium → roboto_regular / roboto_light / roboto_medium。
      - 所有文本控件统一加 android:lineSpacingExtra="3dp",忽略 letterSpacing。
  4. 优先复用项目已有资源:
      - res/drawable 里现有的背景/圆角/边框尽量直接引用,不重复造。
      - Button 优先套用 res/values/styles_buttons.xml 里的公共样式。
      - TextView 优先套用 res/values/styles_textviews.xml 里的公共样式。
  5. 输出最终的 Android XML 布局代码(如果需要补充 strings/colors/drawable 的建议,单独列出"建议新增项",但不强行发散)。

二、实际使用

这个就很简单了, 从Figma MCP粘贴链接,回车即可,会自动使用上面的skill。使用high模型可能时间比较长,需要等待一会儿。

实际生成的xml,可用度已经相当高了,最后自己微调一下。

如果生成Compose其实同理,一通百通。

不知道其他设计工具有没有MCP,例如蓝湖,没去了解。

下期解放API接口开发的繁琐工作

相关推荐
sheji34162 小时前
【开题答辩全过程】以 基于Android的社区车位共享管理系统的设计与实现为例,包含答辩的问题和答案
android
TimeFine3 小时前
Android AI解放生产力(三):认识custom_prompts和skills
android
summerkissyou19873 小时前
Android-Audio-为啥不移到packages/module
android·音视频
catchadmin3 小时前
PHP 值对象实战指南:避免原始类型偏执
android·开发语言·php
BoomHe3 小时前
Android 键盘事件导致页面产生「 半透明蒙层」
android
用户69371750013843 小时前
29.Kotlin 类型系统:智能转换:类型检查 (is) 与类型转换 (as)
android·后端·kotlin
用户69371750013843 小时前
30. Kotlin 扩展:为“老类”添“新衣”:扩展函数与扩展属性
android·后端·kotlin
TimeFine3 小时前
Android AI解放生产力(二):认识MCP以及配置config.toml
android
summerkissyou19874 小时前
Android-packages/modules-由来及子目录介绍
android