zhibo/android-app/新UI设计说明.md

236 lines
6.4 KiB
Markdown
Raw Normal View History

2025-12-17 08:47:15 +08:00
# Android 直播应用新 UI 设计说明
## 🎨 设计概览
已将 Android 应用首页重新设计为现代化的瀑布流布局,参考了主流直播应用的设计风格。
---
## ✅ 已完成的修改
### 1. 新增布局文件
#### 主界面布局 (`activity_main.xml`)
- **顶部导航栏**
- 左侧:菜单图标
- 中间:关注/发现/附近 标签页
- 右侧:消息和通知图标
- **搜索栏**
- 搜索框 + 语音搜索按钮
- 圆角设计,灰色背景
- **分类标签**
- 横向滚动
- 推荐、颜值、才艺、户外、娱乐、聊天
- 选中状态:紫色背景 + 白色文字
- 未选中:灰色背景 + 灰色文字
- **内容区域**
- 瀑布流布局2列
- RecyclerView + StaggeredGridLayoutManager
- **底部导航栏**
- 首页、发现、开播(中间大按钮)、消息、我的
- 固定在底部,白色背景,带阴影
#### 直播间卡片布局 (`item_room_waterfall.xml`)
- **封面图**3:4 比例
- **直播标签**:左上角红色标签(直播中时显示)
- **观看人数**:右上角半透明黑色背景
- **底部信息**
- 标题最多2行
- 主播头像 + 名称
- 热门标签(观看人数>100时显示
### 2. 新增 Drawable 资源
| 文件名 | 用途 |
|--------|------|
| `search_background.xml` | 搜索框背景(圆角灰色) |
| `category_selected.xml` | 选中的分类标签背景(紫色) |
| `category_normal.xml` | 未选中的分类标签背景(灰色) |
| `live_badge_background.xml` | 直播标签背景(红色) |
| `viewer_count_background.xml` | 观看人数背景(半透明黑色) |
| `hot_badge_background.xml` | 热门标签背景(红色边框) |
### 3. 新增 Java 类
#### `WaterfallRoomsAdapter.java`
- 瀑布流适配器
- 支持直播状态显示
- 支持观看人数显示
- 支持热门标签(观看人数>100
### 4. 修改的文件
#### `MainActivity.java`
- 使用 `WaterfallRoomsAdapter` 替代 `RoomsAdapter`
- 使用 `StaggeredGridLayoutManager` 实现瀑布流2列
- 保持原有的轮询和点击逻辑
#### `themes.xml`
- 添加 `CategoryChip` 样式
- 修改状态栏和导航栏颜色为白色
- 启用浅色状态栏图标
---
## 🎨 设计细节
### 颜色方案
- **主色调**:紫色 (`#6200EE`)
- **强调色**:红色 (`#E53935`) - 用于直播标签
- **背景色**:浅灰 (`#F5F5F5`)
- **文字色**
- 主要文字:`#333333`
- 次要文字:`#666666`
- 提示文字:`#999999`
### 圆角设计
- 搜索框24dp
- 分类标签16dp
- 直播间卡片12dp
- 直播标签4dp
### 间距规范
- 页面边距16dp
- 卡片间距8dp
- 元素内边距12dp
---
## 📱 功能说明
### 当前已实现
- ✅ 瀑布流布局展示直播间
- ✅ 直播状态标签
- ✅ 观看人数显示
- ✅ 点击进入直播间
- ✅ 自动刷新列表5秒轮询
- ✅ 开播按钮(底部导航中间)
### 待实现UI已准备好
- ⏳ 搜索功能
- ⏳ 语音搜索
- ⏳ 分类筛选
- ⏳ 关注/发现/附近 标签页切换
- ⏳ 消息和通知功能
- ⏳ 底部导航其他页面
---
## 🔧 如何编译和运行
### 1. 清理项目
```bash
cd android-app
gradlew clean
```
### 2. 编译
```bash
gradlew assembleDebug
```
### 3. 安装到模拟器
```bash
gradlew installDebug
```
或者在 Android Studio 中直接点击 ▶️ Run
---
## 📸 布局预览
### 主界面结构
```
┌─────────────────────────────┐
│ ☰ 关注 发现 附近 ✉ 🔔 │ ← 顶部导航
├─────────────────────────────┤
│ 🔍 搜索主播/房间/标签 🎤 │ ← 搜索栏
├─────────────────────────────┤
│ [推荐][颜值][才艺][户外]... │ ← 分类标签
├─────────────────────────────┤
│ ┌──────┐ ┌──────┐ │
│ │ 封面 │ │ 封面 │ │
│ │ 图片 │ │ 图片 │ │
│ │ │ │ │ │ ← 瀑布流内容
│ │ 标题 │ │ 标题 │ │
│ │ 主播 │ │ 主播 │ │
│ └──────┘ └──────┘ │
│ ┌──────┐ ┌──────┐ │
│ │ ... │ │ ... │ │
└─────────────────────────────┘
│ 🏠 🔍 💬 👤 │ ← 底部导航
└─────────────────────────────┘
```
### 直播间卡片结构
```
┌─────────────────┐
│ [直播中] 👁 123│ ← 标签和观看人数
│ │
│ 封面图片 │
│ │
│ │
├─────────────────┤
│ 直播间标题 │
│ 👤 主播名称 [热] │ ← 主播信息
└─────────────────┘
```
---
## 🐛 已知问题
1. **封面图片**:当前使用默认图标,需要后端提供封面图 URL
2. **主播头像**:当前使用默认图标,需要后端提供头像 URL
3. **分类筛选**UI已完成但功能未实现
4. **搜索功能**UI已完成但功能未实现
---
## 🔄 如何恢复旧版 UI
如果需要恢复旧版 UI
```bash
cd android-app/app/src/main/res/layout
Copy-Item activity_main_old.xml activity_main.xml -Force
Copy-Item item_room_old.xml item_room.xml -Force
```
然后在 `MainActivity.java` 中:
-`WaterfallRoomsAdapter` 改回 `RoomsAdapter`
-`StaggeredGridLayoutManager` 改回 `LinearLayoutManager`
---
## 📝 后续优化建议
### 1. 添加封面图支持
- 后端返回封面图 URL
- 使用 Glide 或 Picasso 加载图片
### 2. 实现分类筛选
- 点击分类标签时筛选对应类型的直播间
- 添加分类字段到 Room 模型
### 3. 实现搜索功能
- 点击搜索框打开搜索页面
- 支持搜索主播名称和直播间标题
### 4. 添加下拉刷新
- 使用 SwipeRefreshLayout
- 手动刷新直播间列表
### 5. 添加加载更多
- 监听滚动到底部
- 分页加载直播间数据
---
**设计完成!现在可以编译运行查看新的 UI 效果了!** 🎉