You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android开发:矢量图应放assets还是drawable?drawable可建子文件夹吗?

关于Android矢量图存放与管理的问题

一、上千个矢量图该放assets还是drawable?

优先选drawable目录,原因如下:

  • drawable是Android官方为矢量图(VectorDrawable)设计的标准存放位置,系统会自动处理不同屏幕dpi的缩放适配,无需手动调整。
  • 可直接通过资源ID(如R.drawable.icon_xxx)在布局XML或代码里引用,比assets的使用成本低很多。
  • 支持矢量图的高级特性,比如tint着色、矢量动画(AnimatedVectorDrawable),这些在assets中无法直接实现,手动处理会徒增工作量。

如果放在assets目录,需通过AssetManager读取文件并自行解析矢量图内容,不仅麻烦,还浪费系统自带的适配能力,上千个图的管理和引用成本会极高,完全不推荐。

二、drawable目录能不能建子文件夹分类?

不行,Android的资源编译系统不支持在drawable目录下创建子文件夹分类资源——不管是矢量图还是位图,子文件夹内的资源都会被编译忽略,无法被识别引用。

针对上千个矢量图的管理,给你几个实用替代方案:

  • 统一命名规范:给图标加前缀区分类别,比如icon_nav_home、icon_setting_theme,用下划线分隔类别与名称,便于查找。
  • 利用Android Studio的Resource Manager:给不同类别的矢量图打标签,比如“导航栏图标”“设置页图标”,需要时通过标签筛选,管理更直观。
  • 拆分到不同模块:如果项目是多module结构,可把不同类别的矢量图放到对应module的drawable目录,比如支付相关图标放到pay模块,既实现分类又不影响资源引用。

内容的提问来源于stack exchange,提问作者Zhiliand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 03:54:55