Android中asset文件夹和raw文件夹区别
2015-08-25 20:46
671 查看
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对象:
InputStream is = getResources().openRawResource(R.id.beep);
有时候需要获得Uri对象:
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.beep);
2.读取assets下的文件资源
获得取InputStream对象:
InputStream is = getAssets().open("beep.ogg");
有时候需要获得Uri对象:
Uri uri = Uri.parse("file:///android_asset/beep.ogg");
然后通过uri播放音效:
Java代码
Ringtone ringtone = RingtoneManager.getRingtone(context, uri);
ringtone.setStreamType(AudioManager.STREAM_SYSTEM);
ringtone.play();
实际测下来,第一种方式可以,第二种不行(难道是ogg文件不可以,试试txt文件),具体原因待查!
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对象:
InputStream is = getResources().openRawResource(R.id.beep);
有时候需要获得Uri对象:
Uri uri = Uri.parse("android.resource://"+getPackageName()+"/"+R.raw.beep);
2.读取assets下的文件资源
获得取InputStream对象:
InputStream is = getAssets().open("beep.ogg");
有时候需要获得Uri对象:
Uri uri = Uri.parse("file:///android_asset/beep.ogg");
然后通过uri播放音效:
Java代码
Ringtone ringtone = RingtoneManager.getRingtone(context, uri);
ringtone.setStreamType(AudioManager.STREAM_SYSTEM);
ringtone.play();
实际测下来,第一种方式可以,第二种不行(难道是ogg文件不可以,试试txt文件),具体原因待查!
相关文章推荐
- [Android]代码实现ColorStateList及StateListDrawable
- Android学习 之 ColorStateList按钮文字变色
- Android控件之ListView
- Android帧率测试
- Android-基本控件(Ratingbar 实现)
- Android的重要控件ListView的诸多问题处理方案
- Android-实现简单画图画板
- Android学习之Intent过滤器的使用
- Android-从图库中加载图片到屏幕并在上面画图
- Android下SQLite数据库学习笔记5——Android下数据库的事务
- Android笔记 4
- Android 内存溢出解决方案(OOM) 整理总结
- Android 记录的(MediaRecorder)而播放(MediaPlayer)
- Android之ListView原理学习与优化总结
- android4.3 SDK控制动态显示导航栏(NavigationBar)
- Android中的Intent详细讲解
- Android Canvas绘图详解(图文)
- Android中Input型输入设备驱动原理分析<一>
- ListView判断是否滚动,保存listview位置状态
- Android驱动例子(LED灯控制)