android数据存储--assets
2016-08-10 本文已影响142人
MrMagicWang
asset与res、raw的不同
- assets:用于存放需要打包到应用程序的静态文件,以便部署到设备中。assets支持任意深度的子目录。在编译的时候不会编译assets下的资源文件,且这些文件不会生成任何资源ID。
- res:用于存放应用程序的资源(如图标、GUI布局等)
- raw:存放通用的文件, 该文件夹内的文件将不会被编译成二进制文件,按原样复制到设备上。
访问assets目录下的资源文件
可以通过AssetManager类来访问assets目录下的资源文件。
获得AssetManager实例的方法:
Context.getAssets()
getResources().getAssets()
访问asset文件夹下的文件(比如文本、图片,不能是文件夹):
Context.getAssets().open(“sample.txt”)
WebView加载assets下的html文件:
WebView.loadUrl(“file:///android_asset/sample.html”);
使用assets目录下的图片资源:
InputStream is=getAssets().open("Image/sample.jpg");
Bitmap bitmap=BitmapFactory.decodeStream(is);
imgShow.setImageBitmap(bitmap);
播放assets目录下的音乐
//openFd(String fileName)方法根据文件名来获取原始资源对应的AssetFileDescriptor资源描述
AssetFileDescriptor afd = am.openFd(music);
mPlayer.reset();
// 使用MediaPlayer加载指定的声音文件。
//getStartOffset():返回asset中项的数据字节开始偏移
//getLength():返回该asset中项的数据的总字节数。
mPlayer.setDataSource(afd.getFileDescriptor(),
afd.getStartOffset(), afd.getLength());
// 准备声音
mPlayer.prepare();
// 播放
mPlayer.start();