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

2.0 KiB
Raw Blame History

后端接口 TODO 清单 - 用户头像加载模块

1. 获取用户头像

文件: ConversationMessagesAdapter.java, ConversationsAdapter.java, FriendsAdapter.java 接口路径: GET /api/users/{userId}/avatar 请求参数: userId (路径参数) 返回数据:

{
  "code": 200,
  "data": {
    "avatarUrl": "string"
  }
}

说明:

  • 如果消息对象ChatMessage/ConversationItem/FriendItem已包含 avatarUrl 字段直接使用该URL加载头像
  • 如果 avatarUrl 为空,则根据 userId 调用此接口获取头像URL
  • 建议在后端返回消息时直接包含 avatarUrl减少额外请求

2. 获取用户在线状态

文件: FriendsAdapter.java 接口路径: GET /api/users/{userId}/status 请求参数: userId (路径参数) 返回数据:

{
  "code": 200,
  "data": {
    "isOnline": "boolean",
    "lastActiveTime": "number"
  }
}

说明:

  • 用于显示好友列表中的在线状态
  • 建议使用 WebSocket 实时推送在线状态变化
  • 备选方案轮询获取每30秒一次

3. 批量获取用户头像

文件: 多个适配器文件 接口路径: POST /api/users/avatars/batch 请求参数:

{
  "userIds": ["string"]
}

返回数据:

{
  "code": 200,
  "data": {
    "userId1": "avatarUrl1",
    "userId2": "avatarUrl2"
  }
}

说明:

  • 用于批量获取多个用户的头像URL
  • 减少网络请求次数,提升性能
  • 适用于列表页面(消息列表、好友列表等)

头像加载优化建议

1. 缓存策略

  • 使用 Glide 的磁盘缓存和内存缓存
  • 设置合理的缓存过期时间如7天

2. 占位图

  • 加载中显示默认头像
  • 加载失败显示默认头像
  • 根据用户名生成不同颜色的默认头像

3. 图片压缩

  • 后端返回不同尺寸的头像URL缩略图、原图
  • 列表页面使用缩略图,详情页面使用原图

4. 预加载

  • 在列表滚动时预加载即将显示的头像
  • 使用 Glide 的 preload 功能