7.1 KiB
7.1 KiB
玩Android Material Design 客户端
基于Uniapp框架开发的Material Design风格玩Android客户端应用。
🎨 设计理念
Material Design 3 规范
- 颜色系统: 使用Material Design 3颜色系统
- 主色:
#6200EE(紫色) - 次要色:
#03DAC6(青色) - 表面色:
#FFFFFF(白色) - 背景色:
#F5F5F5(浅灰)
- 主色:
- 排版: Roboto字体,规范的文字层级
- 阴影: 使用Elevation阴影系统
- 动效: 流畅的过渡动画和交互反馈
Android应用标准
- 遵循Android应用设计规范
- 支持深色模式
- 响应式布局
- 触摸反馈和手势支持
📱 功能特性
✅ 已完成功能
-
Material Design风格首页
- 状态栏和导航栏(紫色主题)
- 搜索栏(Material Design样式)
- Banner轮播(自动轮播+阴影效果)
- 搜索热词(芯片式设计)
- 文章列表(卡片式布局)
- 置顶文章(特殊标识)
- 下拉刷新(Material Design样式)
- 上拉加载更多
- 回到顶部按钮
- 浮动操作按钮(FAB)
-
完整的底部导航
- Material Design图标(轮廓/填充)
- 5个Tab:首页、项目、公众号、体系、我的
- 平滑的切换动画
-
网络请求封装
- 统一的请求工具
- 错误处理和加载状态
- 拦截器支持
⏳ 待开发页面(Material Design风格占位)
- 项目页面 - 开源项目浏览
- 公众号页面 - 技术公众号订阅
- 体系页面 - 技术知识体系
- 我的页面 - 用户中心
🏗️ 项目结构
uniapp_android/
├── pages/ # 页面文件
│ ├── index/ # 首页(Material Design完整实现)
│ │ └── index.vue # 11.8KB,完整功能
│ ├── project/ # 项目页(Material Design占位)
│ ├── wxarticle/ # 公众号页(Material Design占位)
│ ├── tree/ # 体系页(Material Design占位)
│ └── mine/ # 我的页(Material Design占位)
├── components/ # 组件目录
├── utils/ # 工具函数
│ └── request.js # 网络请求封装
├── static/images/icons/ # Material Design图标
├── manifest.json # 应用配置(Android优化)
├── pages.json # 页面配置(Material Design风格)
├── App.vue # 应用入口(全局样式)
├── create_material_icons.py # 图标生成脚本
├── create_placeholder_pages.py # 占位页面生成脚本
└── README.md # 本文件
🎯 技术实现
核心特性
- 响应式设计: 使用rpx单位,适配不同屏幕
- 深色模式: 支持系统深色模式切换
- 性能优化: 图片懒加载、请求节流
- 错误处理: 统一的错误提示和重试机制
- 交互反馈: 触摸反馈、加载状态、动画效果
Material Design组件实现
- 卡片: 阴影、圆角、悬停效果
- 按钮: 填充按钮、轮廓按钮、浮动按钮
- 芯片: 搜索热词芯片
- 进度条: 线性进度指示器
- 底部导航: 图标切换动画
🚀 快速开始
1. 使用HBuilder X
# 1. 下载HBuilder X
# 2. 导入本项目文件夹
# 3. 运行到浏览器或Android模拟器
# 4. 打包为Android APK
2. 运行测试
# 在HBuilder X中:
# 1. 右键项目 → 运行 → 运行到浏览器
# 2. 选择Chrome浏览器
# 3. 按F12切换到移动端模拟
3. 打包APK
# 在HBuilder X中:
# 1. 发行 → 原生App-云打包
# 2. 选择Android平台
# 3. 使用公共测试证书
# 4. 开始打包
🎨 设计细节
颜色系统
/* Material Design 3 颜色 */
--md-primary: #6200EE;
--md-primary-variant: #3700B3;
--md-secondary: #03DAC6;
--md-surface: #FFFFFF;
--md-background: #F5F5F5;
--md-on-primary: #FFFFFF;
--md-on-surface: #000000;
文字层级
/* 标题文字 */
.text-title { font-size: 20px; font-weight: 500; }
/* 副标题 */
.text-subtitle { font-size: 16px; font-weight: 400; }
/* 正文 */
.text-body { font-size: 14px; font-weight: 400; }
/* 说明文字 */
.text-caption { font-size: 12px; font-weight: 400; }
阴影等级
/* Elevation 1 */
.elevation-1 { box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
/* Elevation 2 */
.elevation-2 { box-shadow: 0 4px 8px rgba(0,0,0,0.12); }
/* Elevation 3 */
.elevation-3 { box-shadow: 0 8px 16px rgba(0,0,0,0.14); }
📊 API集成
已集成API
GET /banner/json- 首页BannerGET /hotkey/json- 搜索热词GET /article/list/{page}/json- 文章列表
网络请求示例
import { api } from '@/utils/request.js'
// 获取Banner
const banners = await api.getBanners()
// 获取文章列表
const articles = await api.getArticles(0, 20)
🔧 开发指南
添加新页面
- 在
pages.json中添加页面配置 - 创建Vue页面文件
- 遵循Material Design设计规范
- 使用提供的工具类和组件
样式规范
- 使用提供的CSS类(如
.card,.elevation-1) - 遵循颜色系统
- 使用响应式单位(rpx)
- 添加深色模式支持
组件开发
- 保持组件单一职责
- 提供适当的Props和Events
- 添加文档注释
- 测试不同状态
📱 页面预览
首页
- 紫色状态栏和导航栏
- 搜索栏(点击跳转搜索)
- Banner轮播(自动+手动)
- 搜索热词芯片
- 文章卡片(置顶/普通)
- 浮动操作按钮
- 回到顶部按钮
其他页面
- Material Design风格的占位设计
- 功能预览卡片
- 开发进度指示
- 操作按钮
🧪 测试验证
已测试功能
- ✅ 底部导航切换
- ✅ Banner轮播和点击
- ✅ 搜索热词展示和点击
- ✅ 文章列表加载和分页
- ✅ 下拉刷新和上拉加载
- ✅ 浮动操作按钮
- ✅ 回到顶部功能
- ✅ 网络请求和错误处理
测试方法
- HBuilder X浏览器运行
- Chrome移动端模拟
- 网络请求调试
- 交互功能测试
📦 打包发布
Android配置
{
"minSdkVersion": 21,
"targetSdkVersion": 33,
"permissions": [
"INTERNET",
"ACCESS_NETWORK_STATE",
"ACCESS_WIFI_STATE"
]
}
打包步骤
- 配置
manifest.json - 选择Android平台
- 配置证书(测试/正式)
- 云打包生成APK
🔄 更新计划
近期计划
- 实现搜索功能页面
- 实现WebView文章详情
- 实现登录和用户系统
- 实现收藏功能
长期计划
- 完善其他页面功能
- 添加离线缓存
- 实现推送通知
- 添加分享功能
📄 许可证
本项目基于Uniapp框架开发,遵循MIT许可证。
📞 支持
如有问题或建议,请:
- 查看项目文档
- 检查常见问题
- 提交Issue
项目状态: ✅ 第一阶段完成
设计风格: 🎨 Material Design 3
平台支持: 📱 Android (Uniapp多端)
打包就绪: 🚀 可立即打包APK
提示: 本项目已完全按照Android Material Design风格实现,可直接导入HBuilder X打包发布。