在建立项目中一般会默认建立assets文件,当然我们还可以在res文件下面建立raw文件夹,这里面都可以存放一些多媒体文件或者文本信息,可以供我们在程序中使用。
assets下面的文件不会被编译,通过路径可以去访问其中的内容。
raw中文件会自动编译,我们可以在R.java文件中找到对应的ID。
其中比较重要的是获取Assets和Raw中的资源方法 (assets文件夹下是demo.txt ,raw文件夹下是test.txt)
下面,将以一个例子的形式说明怎样获取assets文件和raw下的文件,Demo下载地址 点击这里
Demo的运行示例如下:
看代码中的操作在获取assets目录下的图片时是先将图片以IO流的方式读取出来,然后生成bitmap,最后设置成背景。如下:
try {
InputStream is = getAssets().open("activity_cycel.jpg") ;
Bitmap bitmap = BitmapFactory.decodeStream(is) ;
mTv_Main.setBackground(new BitmapDrawable(bitmap)) ;
is.close() ;
} catch (IOException e) {
e.printStackTrace();
}
在获取assets/my/demo.txt文件时,是通过IO流的方式读取出来,然后读取文件内容,设置文字信息。
try {
InputStream is2 = getAssets().open("my/demo.txt") ;
BufferedReader br = new BufferedReader(new InputStreamReader(is2)) ;
StringBuilder sb = new StringBuilder() ;
String s ;
while((s = br.readLine()) != null){
sb.append(s) ;
sb.append("\n") ;
}
Log.e("","sb=" + sb) ;
mTv_Main.setText(sb.toString()) ;
is2.close() ;
} catch (IOException e) {
e.printStackTrace();
}
补充:20141103
如果WebView加载assets目录下的html网页或图片时,可以直接指定asset路径下文件的路径。asset目录的路径可表示为 f:///android_asset/
所以,如果assets根目录下有个index.html文件的话,webview.loadUrl("f:///android_asset/index.html")