资讯动态

MasterGo + Claude Code:设计稿直出 Android 布局的实战指南

发布时间:2026/10/20 14:37:13 来源:尧图企业网站定制
做过几年Android开发又经常跟设计师打交道的同学应该都有过这种体验MasterGo 上的设计稿明明标注得清清楚楚到了写布局代码的时候还是要反复对照、换算、猜间距一不留神就漏掉某个状态。最近我用 Claude Code 试了一套“设计稿直出布局”的工作流把 MasterGo 的标注信息喂给 AI 编程助手让它直接生成 Compose/XML 布局实测下来效率提升非常明显特别适合需要快速搭建页面骨架、又不想把时间耗在机械换算上的场景。这篇实践指南会从工具准备、设计稿规范化、提示词编写到代码生成和排查完整走一遍流程。1. 为什么选择这套组合从设计稿到布局的痛点拆解1.1 传统设计交付的断层设计师交付的是一张像素图Android 开发需要的却是一棵视图树。这两者之间的翻译工作过去完全靠人肉完成打开 MasterGo 的标注面板看一个控件的 x、y、宽高换算成 dp再想清楚它用什么父容器、什么对齐方式最后手写 XML 或 Compose 代码。页面复杂一点光这一步就能耗掉半天。更麻烦的是设计稿里的信息是“隐性”的。两个控件之间的间距标注面板会显示但代码里是放 margin 还是 padding是放在 LinearLayout 里靠 layout_weight 分配还是用 ConstraintLayout 做约束设计稿不会告诉你。组件在滚动列表里的复用逻辑、不同屏幕密度下的伸缩规则、深色模式的配色替换这些都需要开发者在翻译过程中额外做决策。所以传统工作流里还原度问题不全是开发不认真而是翻译链路太长、误差被层层放大。AI 生成布局的价值不在于替你做设计决策而在于把“从标注到代码”这段机械翻译变成可复现的自动化过程同时把设计师在源文件里已经表达清楚的结构意图直接带进代码。1.2 MasterGo 与 Claude Code 各自解决什么MasterGo 在这个组合里的角色是“信息源”。它不只提供设计稿预览还提供完整的标注数据控件尺寸、位置、颜色、圆角、字体字号、间距、自动布局信息以及可导出的切图和 SVG 资源。这些数据是 AI 生成高质量布局代码的基础没有精确标注AI 只能靠“猜”生成的代码还原度自然没保障。Claude Code 在这个组合里的角色是“执行引擎”。它能直接读取项目文件结构、分析上下文也能理解我贴进去的设计稿截图和标注信息然后输出完整的 Kotlin/XML 代码。相比在网页对话框里来回复制粘贴Claude Code 可以直接在项目目录里操作生成多个文件、按项目规范命名、甚至跑一遍 Gradle 编译帮我看错误整个流程更像带了一个能听懂人话的结对程序员。两个工具拼在一起本质上就是把“人眼读像素、人脑转结构、人手敲代码”三个环节压缩成“设计稿喂给 AI、AI 产出代码、人做复核”一个环节。这个思路听起来简单实际落地时要注意的细节不少后面几个部分我会把关键步骤和踩过的坑都展开讲。2. 前置准备环境、项目结构与设计稿规范化2.1 工具链搭建这套工作流不依赖特定 IDE我实际用的是 Android Studio 加命令行工具的组合。首先要装好 Node.js 环境Claude Code 是通过 npm 安装的命令行工具装完后在任意项目目录里执行claude就能进入交互式编程会话。安装命令很简单npm install -g anthropic-ai/claude-code claude --versionMac 和 Linux 上如果权限不足可能需要加sudoWindows 用户建议直接用管理员身份的 PowerShell避免 npm 全局目录的权限问题。执行claude进入项目目录后它会扫描当前目录的文件结构和 git 状态所以建议先把 Android 项目 clone 到本地并确保能正常编译。MasterGo 这边我用的是桌面客户端加浏览器插件双保险。桌面客户端方便快速切图和复制标注信息浏览器端则方便在设计稿和 AI 会话之间来回切换。Android 部分需要准备好现代 Compose 项目的基础依赖我建议使用 Android Studio 自带模板创建空项目后面让 Claude Code 在现有工程结构上补页面而不是让它从零初始化一个 Gradle 工程这样能省掉大量环境兼容问题。2.2 让 AI 能“看懂”设计稿的三个方法Claude Code 不是设计工具不会自己打开 MasterGo 源文件。所以得先把设计稿“翻译”成它能理解的形式。我试过三种方式各有适用场景直接对比一下方法操作方式信息完整度适用场景截图加标注截取设计稿关键区域附带尺寸、间距、颜色等文字说明中高取决于标注是否完整单页面快速生成最常用设计令牌/样式变量手动整理颜色、字号、间距、圆角的命名变量列表高结构清晰多页面复用、需要统一设计语言插件导出结构数据用 MasterGo 插件导出图层结构、自动布局、组件数据极高含层级关系复杂页面、列表、嵌套布局我最常用的组合是“截图加标注”“设计令牌”。截图负责让 AI 理解视觉结构设计令牌负责让 AI 严格执行设计规范。单独截图的问题很明显AI 能看到颜色和大概位置但两个控件之间具体是 8dp 还是 12dp只能靠猜。单独给设计令牌也不行AI 知道有哪些规范但不知道这个页面长什么样、元素怎么排列。2.3 设计稿规范化清单AI 生成布局的质量很大程度上取决于设计稿本身的规范程度。我踩过几次坑之后总结了一条铁律设计稿越规范AI 生成代码的还原度越高设计稿越随意AI 的“自由发挥”就越离谱。几个关键检查点图层命名清晰按钮不能叫“矩形 17”应该叫“btn_primary_login”输入框不能叫“Frame 82”应该叫“input_phone_number”。AI 很擅长从命名反推控件作用。自动布局优先MasterGo 里的自动布局会自动计算间距和换行规则AI 能直接理解成 LinearFlow 或 Row/Column 的关系。如果设计稿里全是手工摆放的绝对定位AI 生成代码时大概率也会用硬编码坐标这种情况处理起来非常痛苦。组件化设计同一个按钮在多个页面复用最好在 MasterGo 里做成组件。AI 看到组件引用能理解“这是一个可复用控件”而不是傻傻地每处生成一套重复代码。标注完备关键间距、颜色、圆角都要显示出来。很多设计师标注不完整开发阶段还能人肉猜AI 阶段信息缺失会导致生成的代码看起来“差不多”但就是不对。这套清单我会直接写进项目说明文件让 AI 在生成前先检查设计稿状态。如果设计稿本身不达标宁可先花半小时整理也比生成一大堆返工代码强。3. 完整实操从 MasterGo 导出到 Claude Code 生成布局3.1 场景模拟项目 X 的登录页为了把流程讲清楚我拿一个典型的登录页来做示例。页面结构包括顶部品牌 Logo、标题文字、手机号输入框、验证码输入框、登录按钮、底部协议文案。这个页面包含文本输入、按钮、间距、对齐、状态交互等多个常见元素很适合演示。设计稿在 MasterGo 里的布局是竖排居中Logo 在最上面向下依次是标题、副标题、输入框、按钮整体居中对齐控件之间的间距在 16dp 到 32dp 之间。页面背景是浅灰色按钮是主题色圆角 12dp。我先把这张设计稿里所有需要用到的关键数据记下来包括色值、字号、间距、圆角、组件尺寸。3.2 步骤一在 MasterGo 中整理图层并导出物料这一步很多人会跳过但我不建议。打开设计稿后我先检查图层名称把矩形_7改成ic_logo把组合_24改成btn_login。改名的目的不是给设计师看而是让 AI 从截图和标注里提取信息时更容易建立“元素到代码”的映射。然后导出一份“标注速查表”不需要导完整设计规范只要登录页用到的资源。具体来说颜色背景色#F7F8FA、主题色#4F6BFF、文字主色#1A1A1A、辅助色#999999字体标题 24sp 加粗、输入框文本 16sp 常规、协议文案 14sp 常规间距Logo 到标题 24dp、标题到输入框 32dp、输入框间距 16dp、按钮高度 48dp圆角输入框 8dp、按钮 12dp同时把 Logo 的 SVG 图标从 MasterGo 里导出放到项目的res/drawable目录。这个步骤看起来很基础但它决定了 AI 后续生成代码时是“用真实资源”还是“用占位符”前者能直接编译运行后者还得二次返工。3.3 步骤二编写生成指令Claude Code 输出质量最关键的变量是提示词怎么组织。我的做法是先把项目的技术栈和约束告诉它再给它设计稿信息最后明确输出格式。一次性把所有信息给全比在会话里来回补充效率高得多。下面是我实际用过的提示模板你可以直接复制改成自己的场景请在我的 Android 项目中生成登录页 Compose 布局要求如下。 项目约束 - 使用 Kotlin Jetpack ComposeMaterial3 主题。 - 颜色从主题资源读取不要硬编码在 composable 里。 - 单位使用 dp/sp不使用 px。 - 页面垂直居中布局内容宽度最大 360dp。 设计稿信息 - 整体背景#F7F8FA - Logo顶部居中资源 ic_logo宽高 48dp。 - 标题“欢迎回来”24sp、加粗、颜色 #1A1A1A。 - 副标题“登录后体验更多功能”14sp、常规、颜色 #999999。 - 手机号输入框占位符“请输入手机号”16sp圆角 8dp背景 #FFFFFF高度 48dp。 - 验证码输入框同上右侧带“获取验证码”按钮。 - 登录按钮文字“登录”16sp、白色背景主题色 #4F6BFF圆角 12dp高度 48dp。 - 底部协议一行文字14sp、颜色 #999999中间可点击部分颜色 #4F6BFF。 - 间距Logo 距标题 24dp标题距副标题 8dp副标题距输入框 32dp两个输入框之间 16dp输入框距按钮 24dp。 输出要求 - 生成完整可编译的 Kotlin 文件命名 LoginScreen.kt。 - 顶部状态栏处理使用 Scaffold。 - 代码里对关键间距/颜色提取常量或使用 MaterialTheme 设计令牌。 - 生成后检查一遍 Preview 是否能正常渲染。这个提示词的关键是“先约束、再给事实、最后给要求”。约束部分限制技术栈事实部分让 AI 有据可依要求部分明确交付标准。顺序不能乱尤其不能把“输出要求”写在最前面AI 会在后续信息里越看越模糊。3.4 步骤三运行 Claude Code 生成与迭代在项目根目录启动claude把上面这段提示词贴进去。Claude Code 会先读取项目结构看到是 Gradle Android 工程后会自动匹配 Kotlin 和 Compose 语法。我实测下来第一次生成的代码通常能编译通过但细节会和设计稿有出入比如按钮文字颜色用了固定白色而不是主题色、状态栏处理不完全符合设计意图。这时候不要着急自己改代码直接把“偏差描述”扔回给 AI 更高效。比如我会说“登录按钮颜色不对设计稿是 #4F6BFF你生成的硬编码白色。间距也不对标题到副标题应该是 8dp现在是 12dp。请基于原设计稿修正。”Claude Code 会定位到它刚才生成的LoginScreen.kt然后修改对应位置。这种“生成—检查—反馈—修正”的循环我一般跑两三轮就能得到基本符合设计稿的文件。整个过程大约十分钟而以前手写这个登录页加调试少说也要一两个小时。3.5 步骤四人工复核与修正AI 生成完代码后我会把 MasterGo 原图和生成的 Preview 截图放在一起对比。重点检查四类内容尺寸与间距控件的宽高、外边距、内边距是否符合标注。字体与颜色字号、字重、颜色、行高是否一致。状态与交互加载状态、错误提示、键盘处理是否缺失。屏幕适配小屏设备上是否溢出内容是否超出安全区域。人工复核的意义不是找 AI 茬而是补上它“看不见”的部分。设计稿是静态图AI 很难判断软键盘弹出后布局应该怎么处理、深色模式颜色怎么切换、无障碍的对齐方式是否合理。这些规则我会提前写进提示词但仍需要开发者基于经验做最终判断。4. 关键细节提示词、布局算法与代码质量控制4.1 提示词工程的核心把标注变成约束很多同学用 AI 生成布局效果不稳定根源是提示词只描述了“有什么”没说“怎么约束”。我的体会是设计标注不是用来给 AI 参考的而是用来约束 AI 决策的。如果把标注当作背景信息AI 会按它自己理解的“常规做法”走如果把标注变成明确的规则AI 才会老老实实按设计稿执行。举个例子。只说“标题下面有段副标题”AI 可能用 8dp、12dp 或 16dp 的任意间距。但告诉它“标题距离副标题 8dp副标题距离输入框 32dp”AI 就会严格执行。同理只说“用主题色”AI 可能从设计稿中任选一个蓝色告诉它“主题色是 #4F6BFF在 color 资源里名为 primary_blue”它就知道该引哪个变量。还要注意把“设计稿没有说明”的部分主动补充成规则。比如输入框的高度、圆角、边框宽度、点击后的水波纹效果这些如果不写AI 可能按 Material3 的默认高度来视觉上跟设计稿完全对不上。我的经验是宁可提示词长一点也要把所有会影响像素级的参数写清楚。4.2 从设计稿数值到 Android 资源的映射MasterGo 里的数值和 Android 代码里的数值存在几类换算关系这是最容易出错的地方也是 AI 经常“看起来懂、实际不懂”的地方。我整理了一张映射表建议直接放进项目的 AI 约束文件里设计稿数值Android 代码表示注意事项颜色 #RRGGBBColor(0xFFRRGGBB) 或资源色值注意 Compose 需要加 0xFF 前缀带透明度颜色8 位十六进制如 #80RRGGBB透明度在前顺序别搞反字号 pxsp一般直接抄数值但需考虑用户字体缩放间距 pxdp设计稿若用 1x 导出px 数值可直接当 dp圆角 pxdp统一用 dp避免出现像素级不一致阴影模糊半径Modifier.shadow 的 elevation需要同时设置形状否则圆角阴影不对边框 pxBorderStroke 的 width 参数常常被 AI 忽略或乱设最常见的问题是颜色透明度。MasterGo 的色值如果带透明度会显示成类似#4F6BFF80的形式AI 有可能把它当作普通的 8 位色值直接塞进代码结果在 Android 里被解析成完全不同的颜色。这种情况我都是在设计令牌里提前分好类不透明颜色单独列带透明度颜色单独列并注明 alpha 位的位置。4.3 让生成代码符合项目规范让 AI 生成的代码一键通过团队代码评审最省力的办法是把这个项目的编码规范写进CLAUDE.md文件。Claude Code 在会话启动时会自动读取这个文件把它当作长期约束。我项目里的CLAUDE.md大致长这样# 项目编码规范 - 语言Kotlin禁止在 composable 中写复杂业务逻辑。 - UI使用 Jetpack Compose Material3优先使用主题中的颜色和字体令牌。 - 资源所有字符串必须放入 strings.xml颜色尽量放入 color.xml不允许硬编码。 - 命名Composable 函数使用 PascalCase文件与函数同名。 - 布局垂直流使用 Column水平流使用 Row复杂结构使用 ConstraintLayout 新 API。 - 间距使用 dimens.xml 或统一间距常量禁止散落的魔法数字。 - 状态页面状态使用状态提升登录页需要有 loading / error / success 三种状态。 - 预览每个页面必须提供 Preview 函数支持深色模式和常见屏幕尺寸。有了这份文件AI 生成的代码风格会更像团队里其他人写的不会出现“一眼 AI”的命名混乱。更重要的是它能避免重复返工我第一次用 Claude Code 时没加这个文件生成的代码全用魔法数字后来为了统一间距常量改了一整个页面的代码。5. 常见问题与排查技巧实录5.1 常见问题速查表把这段时间实操中遇到的典型问题整理成了速查表遇到类似情况可以直接对号入座现象可能原因排查与解决布局尺寸和设计稿偏差大截图信息不足AI 靠猜间距在提示词中补全所有间距数值不要只给截图字体用错或字号不对未指定字重和行高明确 fontFamily、fontWeight、lineHeight颜色偏色或透明错乱色值格式不对alpha 位错序提供 8 位标准色值或直接给资源变量名图标不显示没有把切图导出到 drawable先人工导出资源再让 AI 引用深色模式下看不清只处理了浅色模式在规范中要求设计令牌支持深色语义小屏设备溢出使用了太多固定宽度改用权重、百分比约束或滚动容器状态栏和键盘遮挡未使用 Scaffold 和安全区强制要求使用 Scaffold 并处理 imePadding5.2 实操中反复踩到的三个坑第一个坑是“AI 喜欢把间距写成绝对值”。设计稿里两个输入框间距 16dpAI 确实会写 16dp但页面整体间距应该是 8dp 的倍数才符合设计系统。这不是 AI 不会算而是提示词里没要求它遵循设计系统的间距梯度。解决办法很简单在规范里加一句“间距只能从 4/8/12/16/24/32dp 中选择”AI 会自动把偏差值归到最近的合法档位。第二个坑是“带透明度颜色被 AI 错误处理”。有一次 AI 把#4F6BFF1A直接当成不透明色用登录页背景变成了实心淡蓝而不是叠加效果。排查了很久才发现是色值解析问题。后来我统一在标注里写成 hex 加 alpha 注释例如#1A4F6BFFalpha0.1AI 再没出错。第三个坑是“多状态页面生成不完整”。登录页至少有默认态、加载态、错误态、禁用态AI 只生成了默认态。这不是 AI 能力问题而是提示词没有显式要求。之后我在输出要求里明确写了“必须包含 loading / error / disabled 三种额外状态”生成的代码就完整多了。设计稿里没画的状态AI 不会神奇地补全必须靠你在提示词里定义清楚。5.3 复现与回归如何验证 AI 生成代码AI 生成代码后跑一次编译通过并不代表布局真的对了。我现在的验证流程分三步走。第一步是 Preview 可视化检查。每个 Composable 文件都写多个Preview分别覆盖默认模式、深色模式、小屏尺寸、大字体模式。这一步能快速发现溢出、对齐、深色配色问题。第二步是截图对比。在 Android Studio 里跑一个模拟器页面和 MasterGo 原图做叠图对比。不需要精确定位主要看整体视觉节奏是否一致间距和字号是否在可接受范围内。第三步是交互回归。登录页这种场景要手动测一遍输入手机号、点击获取验证码、登录按钮的 loading 状态、错误提示是否正常。AI 生成的代码在静态布局上表现很好但交互状态和边缘情况往往需要人工补完。写在最后这套 MasterGo 加 Claude Code 的工作流最打动我的不是“生成代码”这个动作本身而是它把从设计到代码之间的摩擦成本降下来了。以前改一版间距要手动调半天现在把新标注扔给 AI几秒钟就能出一版接近最终效果的结果。老实说AI 生成的布局直接上生产线还不太现实状态管理、复杂交互、性能优化这些老法师的看家本领它短时间学不会。但我个人的体会是只要养成“设计稿规范化 提示词约束化 结果人工复核”这三个习惯它完全能胜任 70% 的机械性布局工作。如果你手头正有一个页面急着开发不妨先挑个最简单的页面试试这套流程感受一下“设计稿直接变成可运行代码”的爽感再决定要不要全面铺开。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑