当前位置: 首页 > news >正文

利用android studio,对图片资源进行二次压缩

发现最近的项目对图片资源有做额外的压缩,不是直接使用png图片。具体有两种

方式一:导出成svg

  1. figma中,选中图片,点Export,选择1x svg
  2. 在drawable中,右键 new -> Vector Asset -> 选中步骤1导出的svg资源
  3. 资源会被自动处理成xml,放入项目中

方式二:基于PNG图片压缩

  1. 把资源放到 drawable的特定目录下
  2. 右键 -> convert to webp…
  3. 默认quality -> 选择最高压缩比(或者选肉眼看起来效果还好的图片)

兼容性

  1. WebP兼容性
    WebP是一种由Google开发的图片格式,它支持有损压缩和无损压缩,并且可以包含透明度(Alpha通道)。在Android中,WebP的兼容性如下:
  • Android 4.0(API 14)及以上:支持不包含透明度的WebP图片(即不带Alpha通道)。
  • Android 4.3(API 18)及以上:支持包含透明度的WebP图片(即带Alpha通道)。

因此,如果你的应用的最低支持版本(minSdkVersion)是API 18或以上,那么你可以安全地使用带透明度的WebP图片。如果最低支持版本是API 14到API 17,则只能使用不带透明度的WebP图片。对于低于API 14的版本,则无法使用WebP格式。

  1. Vector Asset(矢量图)兼容性

Vector Asset是Android中的矢量图资源,通常使用SVG格式转换而来,在Android中是以XML格式存储的矢量图(VectorDrawable)。矢量图的优势在于可以无损缩放,减少资源文件大小,并且适配不同屏幕密度。

  • Android 5.0(API 21)及以上:原生支持VectorDrawable。
  • Android 4.4(API 20)及以下:不支持VectorDrawable。

但是,从Android Support Library 23.2.0开始,支持库提供了VectorDrawableCompat和AnimatedVectorDrawableCompat,使得在Android 4.0(API 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 节省资源,但需注意低版本兼容性。

文章转载自:
http://catchy.hfstrb.cn
http://camauro.hfstrb.cn
http://absinth.hfstrb.cn
http://apsis.hfstrb.cn
http://cholangitis.hfstrb.cn
http://axunge.hfstrb.cn
http://beaming.hfstrb.cn
http://afroism.hfstrb.cn
http://canescent.hfstrb.cn
http://annette.hfstrb.cn
http://aweigh.hfstrb.cn
http://bacardi.hfstrb.cn
http://apothecial.hfstrb.cn
http://chlorambucil.hfstrb.cn
http://buckeye.hfstrb.cn
http://adrenal.hfstrb.cn
http://ascetically.hfstrb.cn
http://argillaceous.hfstrb.cn
http://asymptotic.hfstrb.cn
http://catheter.hfstrb.cn
http://botryomycosis.hfstrb.cn
http://balding.hfstrb.cn
http://calcific.hfstrb.cn
http://argentate.hfstrb.cn
http://badinage.hfstrb.cn
http://bugeye.hfstrb.cn
http://ceroplastic.hfstrb.cn
http://cartesianism.hfstrb.cn
http://aesthetism.hfstrb.cn
http://cetology.hfstrb.cn
http://www.dtcms.com/a/281196.html

相关文章:

  • 基于Ruoyi和PostgreSQL的统一POI分类后台管理实战
  • 三步把餐饮回访差评变口碑
  • java+vue+SpringBoot在线租房和招聘平台(程序+数据库+报告+部署教程+答辩指导)
  • Ajax原理、用法与经典代码实例
  • TCP协议可靠性设计的核心机制与底层逻辑
  • 基于YOLOv8的水稻叶片病害检测系统的设计与实现【近6W条数据集+多病害特征+高准确率】
  • 修改系统配置后,如何编写 Python 脚本以适应 SSL 证书验证的变化
  • Axios 和 Promise 区别对比
  • C语言---自定义类型(下)(枚举和联合类型)
  • 利用DeepSeek为chdb命令行客户端添加输出重定向和执行SQL脚本功能
  • nlp论文:分本分类:《Bag of Tricks for Efficient Text Classification》
  • VirtualBox网络配置全指南:桥接、Host-Only与双网卡实战
  • 2025华为ODB卷-士兵过河-三语言题解
  • 限制apk使用时长第二篇-限制/拦截Apk启动-应用锁功能
  • 创客匠人:创始人 IP 变现,从 “单点尝试” 到 “生态赋能” 的跨越
  • S7-200 SMART PLC:不同CPU及数字量 IO 接线全解析
  • ESLint 配置错误:ReferenceError: prettier is not defined 解决方案
  • 运维技术教程之Jenkins上的known_hosts文件
  • 高频高密度趋势下磁芯材料评价指标探讨
  • UVM(1)—配置环境
  • 算法学习day16----Python数据结构--模拟队列
  • 传统三层网络架构和现代数据中心网络架构(如思科 ACI 的 Spine-Leaf 架构)的对比和分析(Grok3 回答)
  • Mac电脑上无需卸载即可切换使用多个EasyConnect客户端的解决方案
  • Docker安装升级redis,并设置持久化
  • 使用 sudo iftop -i 分析服务器带宽使用情况
  • 一文读懂语义解析技术:从规则到神经网络的演进与挑战
  • PPP 链路及 MP 捆绑与 CHAP 验证实验
  • 从零开始学前端html篇3
  • Missing classes detected while running R8解决
  • 创客匠人:从 IP 到变现,定位是构建价值闭环的核心