1.常用图片资源
格式 | 透明度 | 体积 | 场景 |
---|---|---|---|
png | 支持 | 较大 | 支持透明度的普通图片 |
jpg | 不支持 | 较小 | 不支持透明度的背景图 |
webp | 支持 | 小 | 除了启动图标和通知图标的其他png适应场景 |
svg | 支持 | 小 | 小图标 |
gif | 支持 | 大 | loading 动画 |
.9.png | 支持 | 较大 | 聊天气泡 |
json | 支持 | 小 | (lottie动画)复杂的动画场景 |
2.png
png 的图片一般支持透明度,体积会较大
可以使用第三方的软件对体积进行压缩处理
或者替换成 webp 的格式
手机设备会对 png 的图片进行硬件加速,加载速度较快
3.jpg
由于 jpg 不支持透明度,适合作为背景,体积会相对于PNG减小,因为少了2位透明度的体积。
4.webp
官方建议压缩比例75%,不放心可以100%的无损压缩
适用于 png 的大多数场景可以转成 webp 的格式
4.1 兼容性问题
4.2版本以上才支持,目前最低版本都是 5.0,所以不用考虑
4.2 png 转 webp
在 AS 鼠标右键点击 png 图片,选中 Convert to WebP…
5.svg
适合小图标,比如返回,设置等icon
太复杂的图,不建议使用svg,在部分低性能的设备上,会加载很慢
注意兼容性问题,有些 api 只支持高版本
Attribute 'endX' is only used in API level 24 and higher (current min is 21)
注意路径(android:pathData)不能过长,会影响加载效率
Very long vector path (806 characters), which is bad for performance.
Considering reducing precision, removing minor details or rasterizing vector.
遇到这种情况可以用webp代替,或者降低svg的复杂度
6.gif
适合 loading 场景 和 评论聊天等场景
可以用 Glide 进行加载展示
如果是项目内置的 loading 场景,建议使用 lottie 动画代替
7…9.png
点九图,目前使用比较少了
8. json
复杂动画推荐使用
总结
小图标 建议使用 svg
一般图片建议使用 webp
无透明度图片 建议使用 jpg
复杂动画 建议使用 json