android数据存储--assets

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();  

你可能感兴趣的:(android数据存储--assets)