Android中如何使用Glide加载res/drawable目录下的静态图片
问题原因
你直接传入字符串路径的写法是错误的:/res/drawable/test.jpg是项目源码的目录结构,APP安装到设备后,资源文件会被打包进APK,不存在这个文件系统路径,Glide无法通过该字符串找到对应资源。
解决方法
Glide原生支持直接加载Android本地资源ID,你只需要传入drawable对应的R资源ID即可,不需要自行拼接路径。
修改后的代码如下:
Glide.with(viewHolder.itemView) .load(R.drawable.test) .fitCenter() .into(viewHolder.imageViewBackground);
补充说明
- 通过R资源ID加载的方式,还可以自动适配系统的多分辨率、深色/浅色模式等资源切换规则,比硬编码路径兼容性更好
- 如果后续需要动态根据资源名加载ID,可以通过
context.getResources().getIdentifier("test", "drawable", context.getPackageName())方法先拿到资源ID,再传给Glide的load方法
内容的提问来源于stack exchange,提问作者WEI ZHUANG GOH
相关产品推荐
相关产品推荐

