返回
车载导航自研图片格式的探索与实践
前端
2024-02-05 12:23:37
随着车载多媒体设备从无屏向有屏的发展,市场上车机屏幕呈现出多样化,其尺寸和分辨率的丰富程度远远超过 Android 手机适配屏幕。高德车载导航过去采用多套 UI 图片资源,通过拉伸、缩小适应各种车机屏幕,以减少内部 UI 资源开发和管理成本的方式,面临着越来越大的挑战。
背景
多套 UI 图片资源适配不同车机屏幕的方式主要存在以下问题:
- 资源冗余: 同一张图片需要保存多份不同尺寸的副本,导致资源冗余,增加存储空间占用。
- 拉伸失真: 不同尺寸的屏幕拉伸同一张图片,容易造成图片失真,影响视觉体验。
- 开发效率低: 每次新增或修改一张图片,都需要为不同尺寸的屏幕制作对应的副本,降低开发效率。
自研图片格式探索
为了解决上述问题,我们探索了自研图片格式的可能性。自研图片格式需要满足以下要求:
- 灵活适配: 能够根据不同屏幕尺寸和分辨率生成合适的图片。
- 高效存储: 尽可能减少图片存储空间占用。
- 开发便捷: 便于图片的开发和管理。
自研图片格式设计
经过调研和探索,我们设计了基于分块存储和矢量的自研图片格式。该格式主要包括以下部分:
- 分块存储: 图片被划分为多个固定大小的块,每个块存储特定区域的像素数据。
- 矢量 块在屏幕上排列位置和大小的矢量信息。
- 索引表: 记录每个块在存储文件中偏移量的信息。
工作原理
自研图片格式的工作原理如下:
- 根据屏幕尺寸和分辨率,计算需要生成的图片块数量和每个块的大小。
- 将原图划分为相应数量的块,并存储每个块的像素数据。
- 生成矢量描述,描述每个块在屏幕上的排列位置和大小。
- 构建索引表,记录每个块在存储文件中偏移量的信息。
优势
自研图片格式具有以下优势:
- 灵活适配: 根据不同屏幕尺寸和分辨率,动态生成合适的图片,解决拉伸失真问题。
- 高效存储: 采用分块存储方式,避免资源冗余,有效降低存储空间占用。
- 开发便捷: 只需要维护一份源图片,便于图片的开发和管理,提高开发效率。
应用实践
我们已经在高德车载导航中应用了自研图片格式,取得了显著的成效:
- 资源占用减少: 自研图片格式将图片资源占用减少了约 50%,有效降低了存储空间占用。
- 视觉体验提升: 自研图片格式解决了拉伸失真问题,提高了图片的视觉体验。
- 开发效率提高: 自研图片格式简化了图片开发和管理,提高了开发效率。
总结
高德车载导航自研图片格式的探索和实践,有效解决了多套 UI 图片资源适配不同车机屏幕带来的问题。自研图片格式具备灵活适配、高效存储和开发便捷的优势,为车载导航的 UI 资源管理提供了新的解决方案。未来,我们将继续探索和优化自研图片格式,以进一步提升车载导航的用户体验。