zhibo/android-app/后端接口TODO清单-用户头像.md

82 lines
2.0 KiB
Markdown
Raw Normal View History

# 后端接口 TODO 清单 - 用户头像加载模块
## 1. 获取用户头像
**文件**: `ConversationMessagesAdapter.java`, `ConversationsAdapter.java`, `FriendsAdapter.java`
**接口路径**: `GET /api/users/{userId}/avatar`
**请求参数**: userId (路径参数)
**返回数据**:
```json
{
"code": 200,
"data": {
"avatarUrl": "string"
}
}
```
**说明**:
- 如果消息对象ChatMessage/ConversationItem/FriendItem已包含 avatarUrl 字段直接使用该URL加载头像
- 如果 avatarUrl 为空,则根据 userId 调用此接口获取头像URL
- 建议在后端返回消息时直接包含 avatarUrl减少额外请求
## 2. 获取用户在线状态
**文件**: `FriendsAdapter.java`
**接口路径**: `GET /api/users/{userId}/status`
**请求参数**: userId (路径参数)
**返回数据**:
```json
{
"code": 200,
"data": {
"isOnline": "boolean",
"lastActiveTime": "number"
}
}
```
**说明**:
- 用于显示好友列表中的在线状态
- 建议使用 WebSocket 实时推送在线状态变化
- 备选方案轮询获取每30秒一次
## 3. 批量获取用户头像
**文件**: 多个适配器文件
**接口路径**: `POST /api/users/avatars/batch`
**请求参数**:
```json
{
"userIds": ["string"]
}
```
**返回数据**:
```json
{
"code": 200,
"data": {
"userId1": "avatarUrl1",
"userId2": "avatarUrl2"
}
}
```
**说明**:
- 用于批量获取多个用户的头像URL
- 减少网络请求次数,提升性能
- 适用于列表页面(消息列表、好友列表等)
## 头像加载优化建议
### 1. 缓存策略
- 使用 Glide 的磁盘缓存和内存缓存
- 设置合理的缓存过期时间如7天
### 2. 占位图
- 加载中显示默认头像
- 加载失败显示默认头像
- 根据用户名生成不同颜色的默认头像
### 3. 图片压缩
- 后端返回不同尺寸的头像URL缩略图、原图
- 列表页面使用缩略图,详情页面使用原图
### 4. 预加载
- 在列表滚动时预加载即将显示的头像
- 使用 Glide 的 preload 功能