Android Studio:图片需保存至何处才能在RecyclerView中显示?
问题解答
一、关于drawable文件夹的疑问
你的现有代码没有读取drawable资源的逻辑,当前代码的逻辑是从设备外部存储的公共图片目录加载图片。
如果想把图片放在drawable文件夹:
- 可以这么做,但需要修改代码逻辑适配:
- 将图片放入
res/drawable目录(注意图片文件名只能用小写字母、数字和下划线,不能有大写或特殊字符) - 修改
Item类,把存储的imagePath替换为资源ID(比如private int imageResId) - 在
MyRecyclerViewAdapter的onBindViewHolder方法中,改用holder.image.setImageResource(itemList.get(listPosition).getImageResId())来加载图片
- 将图片放入
- 这种方式适合固定的内置图片,不适合需要动态添加或用户上传的图片。
二、模拟器中的图片保存路径
你的代码已经指定了加载路径为系统公共图片目录,对应模拟器里的实际路径是:
- Android 10及以上版本:
/storage/emulated/0/Pictures - 你可以通过Android Studio右下角的「Device File Explorer」找到这个目录,将jpg格式的图片复制进去,重启App或者重新调用
updatePictures()方法就能加载这些图片。
现有代码的优化建议
- 权限适配:Android 13及以上版本,读取公共图片需要申请
READ_MEDIA_IMAGES权限,而不是READ_EXTERNAL_STORAGE,建议更新权限申请的代码 - 异常排查:
updatePictures()方法里捕获了异常但未做处理,建议添加日志打印,比如Log.e("MainActivity", "加载图片目录失败", e),方便排查空目录、权限问题等 - 内存优化:直接用
BitmapFactory.decodeFile加载大图容易引发内存溢出,建议使用Glide、Picasso这类图片加载库,自动处理压缩和内存缓存
内容的提问来源于stack exchange,提问作者Rodrigo Nogueira
相关产品推荐
相关产品推荐

