App Inventor 2 屏幕适配教程

让你的App在各种手机上都好看,从小屏到大屏、从低分辨率到高分辨率。

一、两种尺寸模式

App Inventor 2 提供两种屏幕尺寸模式,在设计器右侧 Screen1 属性中设置:
模式说明适用场景
固定(Fixed)按320×460像素设计,自动缩放到实际屏幕旧项目、只针对单一屏幕
响应式(Responsive)使用设备实际像素,百分比布局新项目推荐

二、响应式布局核心原则

2.1 用百分比代替固定像素

// ❌ 错误:固定像素,不同手机显示不一致
设置 按钮1.宽度 = 160

// ✅ 正确:百分比,自动适配屏幕宽度
设置 按钮1.宽度百分比 = 50    // 屏幕宽度的50%
设置 按钮1.高度百分比 = 10    // 屏幕高度的10%

2.2 设计器中设置百分比

在设计器中,宽度/高度输入框后面有 % 选项,直接输入百分比数字即可。

2.3 充满父级 vs 自动

设置 按钮1.宽度 = -2    // -2 = 充满父级(Fill Parent)
设置 按钮1.高度 = -1    // -1 = 自动(Automatic)

三、动态获取屏幕尺寸

// 获取屏幕实际宽高(响应式模式下)
初始化局部变量 屏幕宽 = Screen1.宽度
初始化局部变量 屏幕高 = Screen1.高度

// 根据屏幕尺寸动态设置组件大小
当 Screen1.初始化 时
  // 按钮宽度 = 屏幕宽度的45%
  设置 按钮1.宽度 = 四舍五入(Screen1.宽度 * 0.45)
  
  // 字体大小根据屏幕宽度自适应
  如果 Screen1.宽度 < 400 则
    设置 标签1.字体大小 = 14    // 小屏手机
  否则如果 Screen1.宽度 < 600 则
    设置 标签1.字体大小 = 16    // 普通手机
  否则
    设置 标签1.字体大小 = 20    // 大屏/平板

四、常见适配问题与解决方案

4.1 问题:雷电模拟器/平板上标签不显示

原因:固定模式下,组件坐标超出了320×460的虚拟屏幕范围。 解决方案
  1. 将 Screen1.Sizing 改为 响应式
  2. 使用百分比布局代替绝对坐标
  3. 避免使用绝对布局(TableArrangement),改用水平/垂直布局

4.2 问题:字体在大屏上太小

// 动态字体大小
定义 自适应字体大小(基础大小)
  返回 四舍五入(基础大小 * Screen1.宽度 / 360)
  // 360是基准宽度(普通手机)

当 Screen1.初始化 时
  设置 标签_标题.字体大小 = 调用 自适应字体大小(18)
  设置 标签_内容.字体大小 = 调用 自适应字体大小(14)

4.3 问题:图片在不同屏幕上变形

// 图片组件设置
设置 图片1.宽度百分比 = 80      // 宽度80%
设置 图片1.高度 = -1            // 高度自动(保持比例)
// 注意:ScalePictureToFit 属性设为 真

4.4 问题:按钮在小屏上太拥挤

// 根据屏幕宽度调整按钮间距
当 Screen1.初始化 时
  如果 Screen1.宽度 < 360 则
    // 小屏:按钮竖排
    设置 水平布局1.可见 = 假
    设置 垂直布局1.可见 = 真
  否则
    // 大屏:按钮横排
    设置 水平布局1.可见 = 真
    设置 垂直布局1.可见 = 假

五、实时测试方案

5.1 AI伴侣实时测试

  1. 手机安装 AI伴侣(fun123.cn版)
  2. 电脑和手机连同一WiFi
  3. 点击”连接” → “AI伴侣”,扫码即可实时预览

5.2 多设备测试清单

设备类型分辨率测试要点
小屏手机720×1280文字不截断,按钮可点击
普通手机1080×1920标准显示效果
大屏手机1440×3200不留白,充分利用空间
平板1200×1920布局不变形
雷电模拟器可变组件正常显示

六、最佳实践总结

✅ 推荐做法:
- Screen.Sizing = 响应式
- 宽高用百分比或充满父级
- 字体大小动态计算
- 用垂直/水平布局,不用绝对布局
- 图片高度设为自动

❌ 避免做法:
- 固定像素宽高(除非有特殊需求)
- 使用绝对布局(TableArrangement)定位
- 固定字体大小(小屏会太小,大屏会太小)
- 图片宽高都固定(会变形)

参考资料


文档版本:2026.03 | 作者:App Inventor 2 中文网 www.fun123.cn

参考资料与版权声明

原文来源

版权声明

本文档基于 MIT App Inventor 官方文档及社区资源整理,版权归原作者所有:
  • MIT App Inventor 官方文档采用 CC BY-SA 4.0 授权
  • MIT App Inventor Community 帖子版权归原作者所有
本文档由 ai2claw 🐝 整理,仅供学习参考,如有侵权请联系删除。