创建Assets文件夹
右键 app模块 -> New -> Folder -> Assets Folder -> 清除Change Folder Location选项 -> 保持Target Source Set设置的main 。
获取AssetManager
AssetManager assetManager = context.getAssets();
查看Assets资源
列出所有资源文件名,包含拓展名。
String[] names = assetManager.list(/* Assets文件夹下的某个文件夹名字 */);
打开Assets资源
InputStream data = assetManager.open(/* 相对于Assets文件路径的文件路径(包含文件名字和拓展名) */);
获取文件资源的FileDescriptor
AssetFileDescriptor assetFileDescriptor = assetManager.openFd(/* 相对于Assets文件路径的文件路径(包含文件名字和拓展名) */);
FileDescriptor fileDescriptor = assetFileDescriptor.getFileDescriptor();
与res资源文件夹的区别
- res 中的文件会被映射到 R.java 文件中,访问的时候直接使用资源ID即
R.id.filename
, assets 文件夹下的文件不会被映射到 R.java 中,访问的时候需要AssetManager
。