下面来看看如何在Android应用程序中访问文件应用程序包中的资源
AssetManager类,即管理资产类,这个类为访问当前应用程序的资产文件提供了入口。这个类的方法有:open (String filename,int accessMode)使用一个精确的访问模式来打开当前包的一个资产,返回输入流,即由此读取了这个包的资产的内容。要注意的是,这里所说的资产是放置在assets目录下的文件资产。其中accessmode的值可以为:ACCESS_BUFFER,ACCESS_RANDOM,ACCESS_STREAMING,ACCESS_UNKNOWN其中的一个。下面给出一个实例:InputStream is=getAssets().open(String filename);//从指定的filename文件中读取内容,并将其放入到InputStream类型的is变量中int size=is.available(); //获取流的长度byte[] buffer=new byte[size]; //定义流长度的字节数组is.read(buffer); //将流中的内容放到buffer数组中is.close(); String text=new String(buffer);TextView tv=(TextView)findViewById(R.id.text);tv.setText(text); //同上
Android 除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径。我们可以通过AssetManager 类来访问这些文件。
比如我要读取/assets/background.png
Java代码
- Bitmap bgImg = getImageFromAssetFile( "background.png" );
[java]
- Bitmap bgImg = getImageFromAssetFile("background.png");
Java代码
- private Bitmap getImageFromAssetFile(String fileName){
- Bitmap image = null ;
- try {
- AssetManager am = context.getAssets();
- InputStream is = am.open(fileName);
- image = BitmapFactory.decodeStream(is);
- is.close();
- }catch (Exception e){
- }
- return image;
- }