Asset目录与res目录的区别
来源:互联网 发布:java做网络爬虫 编辑:程序博客网 时间:2024/06/05 14:13
assets目录与res下的raw、drawable目录一样,也可用来存放资源文件,但它们三者有区别,对比总结如下表:
assetsres/rawres/drawable获取资源方式: 文件路径+文件名 R.raw.xxx R.drawable.xxx 是否被压缩:NONOYES(失真压缩)能否获取子目录下的资源:YESNONO
说明:
一、assets目录下的资源文件不会在R.Java自动生成ID,所以读取assets目录下的文件必须指定文件的路径。可以通过AssetManager类来访问这些文件。比如要读取assets目录下的background.png:
Bitmap bgImg = getImageFromAssetFile( "background.png" ); /** * 从assets中读取图片 */ private Bitmap getImageFromAssetsFile(String fileName) { Bitmap image = null; AssetManager am = getResources().getAssets(); try { InputStream is = am.open(fileName); image = BitmapFactory.decodeStream(is); is.close(); } catch (IOException e) { e.printStackTrace(); } return image; }
二、如果在res/drawable目录下建了一个名为ppt的子目录,则通过 R.drawable.ppt.xxx 是获取不到ppt目录下的xxx文件的,会报 "R.layout.ppt cannot be resolved" 的错误。若在assets目录下建立一个名为ppt的子目录,并将background.png放入其中,则代码 Bitmap bgImg = getImageFromAssetFile( "ppt/background.png" ); 可正常运行。
总结如下:
*res/raw和assets的相同点:
1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。
*res/raw和assets的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹
*读取文件资源:
1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作
- InputStream is = getResources().openRawResource(R.id.filename);
2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作
- assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
1. 先在Activity里面调用getAssets()来获取AssetManager引用。
2. 再用AssetManager的open(String fileName, int accessMode)方法则指定读取的文件以及访问模式
3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close()。
4.调用AssetManager.close()关闭AssetManager。
0 0
- Asset目录与res目录的区别
- Asset目录与res目录的区别
- Asset目录与res目录的区别
- Asset目录与res目录的区别
- Asset目录与res目录
- res/raw目录和asset目录的区别
- assets目录与res/raw、res/drawable目录的区别
- res/raw与assets目录的区别
- apk中/res/raw目录与/assets目录的区别
- assets目录与res/raw目录下文件的区别
- asset与res/raw的区别
- Android 项目目录(Asset\res...)
- Android : assets与res/raw资源目录的区别
- Android : assets与res/raw资源目录的区别
- Android : assets与res/raw资源目录的区别
- Android : assets与res/raw资源目录的区别
- 如何访问android的asset目录和res目录下的文件
- 如何访问android的asset目录和res目录下的文件
- Java线程详解
- 交控外包的日子里
- Java多线程同步简单了解
- 奇数
- android 自定义view实现类似圆盘抽奖的效果
- Asset目录与res目录的区别
- 安卓解决高德地图在scrollview的嵌套下滑动出现黑影
- HDU 5933 ArcSoft's Office Rearrangement
- Git命令,分场景
- 初级通过正则爬虫网站的url
- JavePoet 初体验
- sudo su身份切换失败
- 多线程并发内部实现机制
- stm8s移植UCOS