大连建设学校网站院长,国外可以做自媒体的网站,1688网站建设,推广软件哪个好发现最近的项目对图片资源有做额外的压缩#xff0c;不是直接使用png图片。具体有两种
方式一#xff1a;导出成svg
figma中#xff0c;选中图片#xff0c;点Export#xff0c;选择1x svg在drawable中#xff0c;右键 new - Vector Asset - 选中步骤1导出的svg资…发现最近的项目对图片资源有做额外的压缩不是直接使用png图片。具体有两种
方式一导出成svg
figma中选中图片点Export选择1x svg在drawable中右键 new - Vector Asset - 选中步骤1导出的svg资源资源会被自动处理成xml放入项目中
方式二基于PNG图片压缩
把资源放到 drawable的特定目录下右键 - convert to webp…默认quality - 选择最高压缩比或者选肉眼看起来效果还好的图片
兼容性
WebP兼容性
WebP是一种由Google开发的图片格式它支持有损压缩和无损压缩并且可以包含透明度Alpha通道。在Android中WebP的兼容性如下
Android 4.0API 14及以上支持不包含透明度的WebP图片即不带Alpha通道。Android 4.3API 18及以上支持包含透明度的WebP图片即带Alpha通道。
因此如果你的应用的最低支持版本minSdkVersion是API 18或以上那么你可以安全地使用带透明度的WebP图片。如果最低支持版本是API 14到API 17则只能使用不带透明度的WebP图片。对于低于API 14的版本则无法使用WebP格式。
Vector Asset矢量图兼容性
Vector Asset是Android中的矢量图资源通常使用SVG格式转换而来在Android中是以XML格式存储的矢量图VectorDrawable。矢量图的优势在于可以无损缩放减少资源文件大小并且适配不同屏幕密度。
Android 5.0API 21及以上原生支持VectorDrawable。Android 4.4API 20及以下不支持VectorDrawable。
但是从Android Support Library 23.2.0开始支持库提供了VectorDrawableCompat和AnimatedVectorDrawableCompat使得在Android 4.0API 14及以上版本中可以使用矢量图。
因此通过使用支持库你可以在minSdkVersion为API 14及以上的应用中使用矢量图。
使用建议
对于WebP
如果你的应用minSdkVersion 18可以自由使用带或不带透明度的WebP图片。如果minSdkVersion 14但18则只能使用不带透明度的WebP图片。如果minSdkVersion 14则不能使用WebP。
对于Vector Asset
如果你的应用minSdkVersion 21可以直接使用矢量图无需额外配置。如果minSdkVersion在14到20之间你需要使用支持库现在通常是AndroidX库来兼容矢量图。
小结格式最低支持版本兼容方案推荐场景WebPAPI 14静态低于 API 18 时避免动图/透明替代 PNG/JPG减小资源体积Vector AssetAPI 14通过支持库使用 appcompat app:srcCompat单一资源适配多分辨率减少 APK 大小优先使用 Vector Asset适配性强减少 APK 体积尤其适合图标/简单图形。复杂图片用 WebP替代 PNG 节省资源但需注意低版本兼容性。