assets,res,raw资源文件与访问

目录:

1: assets与res

res中所有资源文件都会生成R.java对应的id,而assets中不会,res资源可以通过id访问直接找到对应的资源,assets则需要通过AssetManager以二进制流来读取

assets目录下主要存放四种文件:文本文件、图像文件、网页文件(包括html中引用的js/ccs/jpg等资源)、音频视频文件

(1)assets读取图片

InputStream is = getAssets().open(fileName);    

Bitmap bitmap = BitmapFactory.decodeStream(is);  

(2)assets读取文本文件

InputStream is = getAssets().open(fileName);    

int lenght = is.available();    

byte[]  buffer = new byte[lenght];    

is.read(buffer);    

String result = =new String(buffer, "utf8");  

(3) 加载assets下网页

webView.loadUrl("file:///android_asset/html/index.htmll"); 

(4)加载assets下音乐

// 打开指定音乐文件,获取assets目录下指定文件的AssetFileDescriptor对象    

AssetFileDescriptor afd = am.openFd(music);    

mPlayer.reset();    

// 使用MediaPlayer加载指定的声音文件。    

mPlayer.setDataSource(afd.getFileDescriptor(),    

    afd.getStartOffset(), afd.getLength());    

// 准备声音    

mPlayer.prepare();    

// 播放    

mPlayer.start();  

2:assets和raw

和assets差不多,raw也不会被R文件编译,但是raw下不能在建文件夹,assets文件下是可以在建文件夹的。

获取raw文件夹下资源的方法:

InputStream is = getResources().openRawResource(R.id.filename);   

你可能感兴趣的:(assets,res,raw资源文件与访问)